第31题:操作符的相关问题

题目:

下面的代码的结果是:

1 + "1"

2 * "2"

[1, 2] + [2, 1]

"a" + + "b"
  • 1 + “1”
    加性操作符:如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后再将两个字符串拼接起来。所以打印“11”
  • 2 * “2”
    乘性操作符:如果有一个操作数不是数值,则在后台调用 Number()将其转换为数值,所以打印4
  • [1, 2] + [2, 1]
    调用对象的toString方法,即打印“1,22,1”
  • “a” + + “b”
    第二个+为一元操作符,会将后面的转为数值,如果后面不是数值,则转为NaN
    所以结果为"a"+NaN => “aNaN”
    注意:一元运算符+优先级高于二元运算符+,原式等于"a" + ( +“b”);
发布了229 篇原创文章 · 获赞 169 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_41257129/article/details/103780676