var number = 2;
var string = '2';
if (number == string){
return true;
}
上面的代碼將返回true。我想知道==運算符是如何工作的。它將整數轉換爲字符串,然後進行比較或oposite?==運算符如何轉換JS中的數據類型?
var number = 2;
var string = '2';
if (number == string){
return true;
}
上面的代碼將返回true。我想知道==運算符是如何工作的。它將整數轉換爲字符串,然後進行比較或oposite?==運算符如何轉換JS中的數據類型?
我不知道如何==操作符的作品。它會將整數轉換爲字符串,然後進行比較或相反?
不,它會將字符串轉換爲數字,然後進行比較。
如果需要,您可以在規範中閱讀確切的Abstract Equality Algorithm。
==運算符確實會更改數據類型。 我們可以在JavaScript如果我們比較喜歡,它總是返回false使用parseInt
的數量和toString
字符串
: -
var number = parseInt("2");
var string = '2';
var str=string.toString;
if (number == str){
return TRUE;
}else{
return FALSE;
}
當然,它返回'FALSE'(其拋出'未定義可變error')中,因爲你正在比較一個函數和一個數字。 – Bergi
當你使用parseInt函數,你必須定義的基礎,並使用= ==來比較全等:
var number = parseInt('2', 10);
var string = '2';
return (number === string);
是的。但是OP不使用'parseInt'和'==='? – Bergi
http://stackoverflow.com/questions/359494/does-it-matter-which-equals-operator-vs-i-use-in-javascript-comparisons –
這已被問到之前,[檢查職位關於類型脅迫在JS] [1] [1]:http://stackoverflow.com/a/359509/554389 – Ivo