0

我知道 的意思===:它会检查操作数是否相同,所以

  • 1 === '1'会给false
  • 1 == '1'会给true

但是typeof 1isnumbertypeof '1'is string,那么 JavaScript 是如何比较的1 == '1'呢?是否有任何转换发生?如果有,有哪些?

4

3 回答 3

4

如果类型是数字和字符串,

JavaScript 会将字符串转换为数字。

在带注释的 ECMAScript 5.1中:

比较 x == y,其中 x 和 y 是值,产生真或假。如下进行这样的比较:

...

5.如果Type(x)是Number,Type(y)是String,返回比较结果x == ToNumber(y)。6.如果Type(x)是String,Type(y)是Number,返回比较结果ToNumber(x) == y。

于 2013-09-27T14:02:02.473 回答
0

使用字符串()

它在进行比较之前将输入转换为字符串。

例子:

var test1= 1;
var test2= "1";

var answer = String(test1) === String(test2);

在这种情况下,答案将等于 true。

于 2013-09-27T13:59:52.850 回答
0

您可以1 == parseInt("1")将字符串解析为整数。

于 2013-09-27T13:56:55.293 回答