Javascript在减法期间出现意外行为

时间:2012-03-19 07:02:49

标签: javascript html

您好我有这样的javascript代码

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

实际上当我们从字符串中减去一个数字时它应该显示一个错误,但是它显示为90作为输出但是当我们做b + a时它显示10010作为输出这是什么行为。

2 个答案:

答案 0 :(得分:4)

JavaScript中的-运算符仅适用于数学,因此您的变量都会转换为数字。如果您尝试进行无效数学运算,您只会收到错误(或更具体地说是NaN),例如100 - 'a'+运算符对字符串和数字都有效,因此其行为会发生变化:

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

答案 1 :(得分:3)

当你减去时,Javascript会尝试将字符串b强制转换为Number,因为没有为String定义-操作。

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