javascript操作的说明

时间:2014-06-18 12:50:09

标签: javascript

当我在谷歌Chrome控制台中尝试以下内容时,我得到了相应的答案,任何人都可以解释以下答案的原因

1 == '1.0'
true

1 == '1'
true 

'1.0' == '1'
false

为什么会发生这种情况,这意味着,==比较价值与否

3 个答案:

答案 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'