当我在谷歌Chrome控制台中尝试以下内容时,我得到了相应的答案,任何人都可以解释以下答案的原因
1 == '1.0'
true
1 == '1'
true
'1.0' == '1'
false
为什么会发生这种情况,这意味着,==比较价值与否
答案 0 :(得分:2)
Javascript ==运算符在进行比较之前尝试将每一面转换为相同的类型。这就是原因;
1 =='1.0'true(首先将'1.0'转换为int)
1 =='1'为真(此处相同)
'1.0'=='1'false(它们都是相同类型但不同的字符串 值)
如果您不想进行类型转换,请使用===运算符。
答案 1 :(得分:2)
在前两个比较中,字符串会自动转换为整数。所以你基本上比较1 == 1这是真的。
由于您没有给出任何整数,因此不会转换最后一个比较。所以你要比较两个不相同的字符串。所以这会导致错误。
有关javascript比较中自动转换的精彩博文可在此处找到:http://webreflection.blogspot.de/2010/10/javascript-coercion-demystified.html
答案 2 :(得分:1)
很简单,因为你正在比较两个字符串。字符串
"1.0"
与"1"
当您执行以下操作时,右侧会在比较前转换为数字,因此会产生值为true。
1 == '1.0'
如果您想阻止此演员表,请使用三等于
1 === '1.0'