为什么console.log(10 + 5 + rajdeep)给出15rajdeep作为输出,而console.log(rajdeep + 10 + 5)给出rajdeep105作为输出?

时间:2019-06-15 19:13:27

标签: javascript

console.log(10 + 5 + rajdeep); console.log(rajdeep + 10 + 5); 第一条陈述为15rajdeep。 第二条语句为rajdeep105。

1 个答案:

答案 0 :(得分:0)

我想补充jonrsharpe的评论。

为了精确起见,我将假设rajdeep是一个存储字符串'rajdeep'的变量。 Javascript从右到左评估加法运算。也就是说,10+5+rajdeep实际上被评估为((10+5)+rajdeep)。从Mozilla docs on arithmetic operations中我们可以看到10+5将首先求值为15,然后将其与rajdeep字符串连接以产生15rajdeep。第二个示例rajdeep+10+5被评估为((rajdeep+10)+5)rajdeep+10产生一个字符串rajdeep10,然后将其添加到5以产生另一个字符串rajdeep105