我讀過很多關於真理和虛假(http://adripofjavascript.com/blog/drips/truthy-and-falsy-values-in-javascript.html)的好東西,特別是JavaScript中'=='和'==='之間的區別。最好的解釋和資源主要從這個堆棧溢出問題:在表單處理的隱藏字段中存儲布爾值
Which equals operator (== vs ===) should be used in JavaScript comparisons?
我的工作表單,而且需要一個布爾值存儲到一個隱藏字段具有以下jQuery的語法:
$('[name="fieldName"]').val(true);
所以我插入一個布爾值,真或假,到隱藏的領域。在屏幕上的處理,我搶在一些if語句下面的代碼的這個字段的值,並進行比較如下:
$('[name="fieldName"]').val() === "true"
注意如何我使用===運算符來比較字符串值「true」。
我的問題;如果只有JavaScript中的Object是類型引用,則布爾值必須是值類型。因此,我會假設,與===運算符的值比較不僅僅是內容而是比較類型,上面的表達式應該返回false?然而,在我的代碼中,它返回true - 任何人都可以解釋爲什麼這是?
此代碼以前使用==進行比較,但爲了避免出現虛假風險,我正在實施===,只要有可能。這可能是與jQuery轉換爲我的價值觀?
中有什麼比較的代碼$ J′ –
錯字 - 刪除! – coderwurst