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