Javascript减法过程中的意外行为
嗨,我有一个像这样的javascript代码Javascript减法过程中的意外行为,javascript,html,Javascript,Html,嗨,我有一个像这样的javascript代码 var a=10; var b="100"; document.write(b-a); 实际上,当我们从字符串中减去一个数字时,它应该显示一个错误,但它显示为90作为输出,但当我们执行b+a时,它显示为10010作为输出,这是什么行为。JavaScript中的-运算符仅适用于数学,因此您的变量都转换为数字。如果您尝试执行无效的数学运算,例如100-'a',则只会出现错误(或者更具体地说是NaN)。+运算符对字
var a=10;
var b="100";
document.write(b-a);
实际上,当我们从字符串中减去一个数字时,它应该显示一个错误,但它显示为90作为输出,但当我们执行b+a时,它显示为10010作为输出,这是什么行为。JavaScript中的
-
运算符仅适用于数学,因此您的变量都转换为数字。如果您尝试执行无效的数学运算,例如100-'a'
,则只会出现错误(或者更具体地说是NaN
)。+
运算符对字符串和数字都有效,因此其行为会发生变化:
- 如果两个变量都是数字,则使用数学加法
- 否则将使用字符串连接
b
转换为数字,因为没有为字符串定义-
操作
当您使用+
符号时,Javascript会尝试将数字a
转换为字符串,因为+
被定义为字符串的串联