【发布时间】:2014-11-20 04:36:33
【问题描述】:
在 javascript 中尝试一些怪癖:
首先我做到了
console.log("5" + 1);
这会打印51,这很正常,数字和字符串都有一个+运算符,但是由于字符串是第一个变量,它会将1转换为字符串。
现在当我这样做时:
console.log(1 + "5")
我希望输出为 6,因为我认为它会将字符串转换为数字。 但是魔法输出是15。
谁能帮我解决这个问题?
【问题讨论】:
-
commutative law 后面的添加(即使是不同类型的)通常也不是一件坏事 ;-)
-
可能重复:stackoverflow.com/questions/5961000/…(找到第一个,我敢肯定有很多)
-
@linqu 期望它是非可交换的,因为
"5" + 1 == "51" != "15" == 1 + "5". -
这确实是一些奇怪的行为
标签: javascript string numbers type-conversion addition