2015-04-18 27 views
0
var number = 2; 
var string = '2'; 
if (number == string){ 
    return true; 
} 

上面的代碼將返回true。我想知道==運算符是如何工作的。它將整數轉換爲字符串,然後進行比較或oposite?==運算符如何轉換JS中的數據類型?

+0

http://stackoverflow.com/questions/359494/does-it-matter-which-equals-operator-vs-i-use-in-javascript-comparisons –

+0

這已被問到之前,[檢查職位關於類型脅迫在JS] [1] [1]:http://stackoverflow.com/a/359509/554389 – Ivo

回答

0

我不知道如何==操作符的作品。它會將整數轉換爲字符串,然後進行比較或相反?

不,它會將字符串轉換爲數字,然後進行比較。

如果需要,您可以在規範中閱讀確切的Abstract Equality Algorithm

0

==運算符確實會更改數據類型。 我們可以在JavaScript如果我們比較喜歡,它總是返回false使用parseInt的數量和toString字符串

: -

var number = parseInt("2"); 
var string = '2'; 
var str=string.toString; 
if (number == str){ 
    return TRUE; 
}else{ 
    return FALSE; 
} 
+0

當然,它返回'FALSE'(其拋出'未定義可變error')中,因爲你正在比較一個函數和一個數字。 – Bergi