当左操作数是数字而右数是字符串时,为什么加(加)运算符产生一个字符串?

时间:2016-05-09 17:13:22

标签: javascript

我收到了几篇关于这个主题的帖子,并且知道表达式评估从左到右发生了"1"+1 gives "11"1+"1" also gives "11"的原因,请解释原因?

这篇文章中提到并被大多数观众接受。 Javascript (+) sign concatenates instead of giving sum of variables

1 个答案:

答案 0 :(得分:4)

因为规范是这样说的。见The Addition operator (+)

  
      
  1. 如果Type lprim )是字符串或Type rprim )是字符串,那么      
        
    1. 返回串联ToString lprim )后跟ToString rprim
    2. 的结果的字符串   
  2.   
  3. 将添加操作的结果返回到ToNumber lprim )和ToNumber rprim )。
  4.   

因此,只关注某个操作数是否为字符串,而不是哪一个。