2010-01-25 47 views

回答

17

考慮一個情況,當你比較數字或字符串:

if (4 === 4) 
{ 
    // true 
} 

if (4 == "4") 
{ 
    // true 
} 

一nd

if (4 === "4") 
{ 
    // false 
} 

這適用於對象以及數組。

因此,在上述情況下,你必須做出明智的選擇是否使用==或===

+0

我不是問這兩者之間的區別,這是在359494中回答的。我很想知道什麼時候'=='會特別合適。 – bryantsai 2010-01-25 14:39:39

+5

@bryantsai:他給了你 - 比較字符串與數字,而不用手動使用'parseInt'。 – Anonymous 2010-01-25 14:45:01

+0

毫米..沒有真正發現,謝謝。 – bryantsai 2010-01-25 14:50:07

0

==比較兩邊的值是否相同。

===比較兩邊的值和數據類型是否相同。

說我們有

$var = 0; 

if($var == false){ 
    // true because 0 is also read as false 
} 

if(!$var){ 
    // true because 0 is also read as false 
} 

if($var === false){ 
    // false because 0 is not the same datatype as false. (int vs bool) 
} 

if($var !== false){ 
    // true becuase 0 is not the same datatype as false. (int vs bool) 
} 

if($var === 0){ 
    // true, the value and datatype are the same. 
} 

,您可以檢查http://www.jonlee.ca/the-triple-equals-in-php/

+3

-1這是關於JavaScript而不是PHP。 – Gumbo 2010-01-25 14:32:54

3

我建議有使用==沒有問題,但要了解何時以及爲什麼要使用它(即通常使用===,而當服務於某個目的時使用==)。從本質上講,==只是給你速記符號 - (!vble),而不是做一些像

if (vble === 0 || vble === "" || vble === null || vble === undefined || vble === false) ... 

這是很容易只寫

if (vble == false) ... 

(甚至更容易編寫)

如果...

當然,還有更多的例子不只是尋找「truthy」或「falsey」值。

真的,你只需要瞭解什麼時候以及爲什麼使用=====,我看不出有任何理由不使用==它比較適合你......

另一個例子是使用這個速記符號允許速記方法調用:

function func(boolOptionNotCommonlyUsed) { 
    if (boolOptionNotCommonlyUsed) { //equiv to boolOptionNotCommonlyUsed == true 
    //do something we rarely do 
    } 
    //do whatever func usually does 
} 

func(); //we rarely use boolOptionNotCommonlyUsed, so allow calling without "false" as an arg 
5

簡單的回答是,「==」,使超過意義上的「===」當你類型強制轉換比較期間發生。

一個很好的例子是在URL查詢字符串中傳遞的數字。例如,如果您有分頁內容,並且page查詢參數包含當前頁碼,則可以使用if (page == 1) ...檢查當前頁面,即使page實際上是"1"而不是1

相關問題