2012-03-19 46 views
2

嗨,我有一个JavaScript代码,这样期间减法

var a=10; 
    var b="100";   
    document.write(b-a); 

其实它应该显示当我们减去一个字符串的数字,但它显示为90的输出,但是当我们做了一个错误的Javascript意外的行为b + a它将10010显示为输出,这是什么行为。

回答

3

当你减,由于没有为String定义的-操作,因此Javascript尝试将字符串b转换为Number。

当您使用+符号时,Javascript会尝试将数字a强制转换为字符串,因为+被定义为字符串的拼接。

+0

谢谢很好的解释... – Prabhavith 2012-03-19 07:18:06

4

-运营商在JavaScript只适用于数学,所以你的瓦尔都转换成数字。如果您尝试执行无效的数学运算,您将只会收到错误(或更具体地说是NaN),例如100 - 'a'。该+运营商都有效字符串和数字,所以它的行为的变化:

  • 如果两个瓦尔都是数字,数学加法使用
  • 否则字符串连接使用