您好我有这样的javascript代码
var a=10;
var b="100";
document.write(b-a);
实际上当我们从字符串中减去一个数字时它应该显示一个错误,但是它显示为90作为输出但是当我们做b + a时它显示10010作为输出这是什么行为。
答案 0 :(得分:4)
JavaScript中的-
运算符仅适用于数学,因此您的变量都会转换为数字。如果您尝试进行无效数学运算,您只会收到错误(或更具体地说是NaN
),例如100 - 'a'
。 +
运算符对字符串和数字都有效,因此其行为会发生变化:
答案 1 :(得分:3)
当你减去时,Javascript会尝试将字符串b
强制转换为Number,因为没有为String定义-
操作。
当您使用+
符号时,Javascript会尝试将数字a
强制转换为字符串,因为+
被定义为字符串的连接。