JS中==运算符是如何转换数据类型的?
How does the == operator converts data types in JS?
var number = 2;
var string = '2';
if (number == string){
return true;
}
上面的代码将 return 为真。我想知道 == 运算符是如何工作的。它会将整数转换为字符串然后进行比较还是相反?
== 运算符确实改变了数据类型。
我们可以在 JavaScript 中使用 parseInt
作为数字,在 toString
中使用字符串
如果我们这样比较它总是 return false :-
var number = parseInt("2");
var string = '2';
var str=string.toString;
if (number == str){
return TRUE;
}else{
return FALSE;
}
使用parseInt函数时必须定义基数,使用===比较严格相等:
var number = parseInt('2', 10);
var string = '2';
return (number === string);
I was wondering how the == operator works. Will it convert the integer to string and then do the comparison or the opposite?
不是,它会将字符串转换为数字,然后进行比较。
如果需要,您可以阅读规范中的确切 Abstract Equality Algorithm。
var number = 2;
var string = '2';
if (number == string){
return true;
}
上面的代码将 return 为真。我想知道 == 运算符是如何工作的。它会将整数转换为字符串然后进行比较还是相反?
== 运算符确实改变了数据类型。
我们可以在 JavaScript 中使用 parseInt
作为数字,在 toString
中使用字符串
如果我们这样比较它总是 return false :-
var number = parseInt("2");
var string = '2';
var str=string.toString;
if (number == str){
return TRUE;
}else{
return FALSE;
}
使用parseInt函数时必须定义基数,使用===比较严格相等:
var number = parseInt('2', 10);
var string = '2';
return (number === string);
I was wondering how the == operator works. Will it convert the integer to string and then do the comparison or the opposite?
不是,它会将字符串转换为数字,然后进行比较。
如果需要,您可以阅读规范中的确切 Abstract Equality Algorithm。