如下代码输出的结果是什么:

发布时间 2023-11-11 11:45:30作者: 龙陌

如下代码输出的结果是什么

console.log(1+ "2"+"2");
console.log(1+ +"2"+"2");
console.log("A"- "B"+"2");
console.log("A"- "B"+2);

122 32 NaN2 NaN

console.log(1+ "2"+"2");

做加法时要注意双引号,当使用双引号时,JavaScript认为是字符串,字符串相加等于字符串合并。
因此,这里相当于字符串的合并,即为122.

console.log(1+ +"2"+"2");

第一个+"2"中的加号是一元加操作符,+"2"会变成数值2,因此1+
+"2"相当于1+2=3.
然后和后面的字符串“2”相合并,变成了字符串"32".

console.log("A"- "B"+"2");

"A"-"B"的运算中,需要先把"A"和"B"用Number函数转换为数值,其结果为NaN,在剪发操作中,如果有一个是NaN,则结果是NaN,因此"A"-"B"结果为NaN。
然后和"2"进行字符串合并,变成了NaN2.

console.log("A"- "B"+2);
根据上题所述,"A"-"B"结果为NaN,然后和数值2进行加法操作,在加法操作中,如果有一个操作数是NaN,则结果为NaN。

console.log(1+ "2"+"2"); //对于加法来说,如果只有一个操作数是字符串,则将另一个操作数也转换为字符串,然后将两者拼接,为122

console.log(1+ +"2"+"2"); //(+"2")应用了一元加操作符,一元加操作符相当于Number()函数,会将(+"2")转换为2,1+2+"2"=32

console.log("A"- "B"+"2"); //在减法中遇到字符串和加法相反,调用Number()函数将字符串转换为数字,不能转换则返回NaN,此时运用加法规则,NaN+"2","2"是字符串,则将两者拼接。

console.log("A"- "B"+2); //这个与上面的不太相同,减法运算后依然为NaN,但是加号后面的为数字2,加法规则中,如果有一个操作数是NaN,则结果为NaN

加法操作符优先字符串拼接,没有字符串进行常规数值相加

减法操作符优先数字相减,先将操作元素转换成数字,然后相减,有一个NaN直接返回NaN

注意一元操作符,先将转化成数值,再操作