我正在做一些JavaScript比較。我複製像這樣的代碼:數組是否有一個元素等於元素?
if (input.val() != input.data('original'))
//do stuff
我希望我將不得不改變一些東西,因爲在這種情況下input
是<select multiple>
與限制爲1可選擇的選項號碼,但工作沒有變化。
我檢查,事實證明:
13 == [13] //true
13 === [13] //false
我沒想到的是,比較會解開的陣列。
這是我可以使用和依賴的JavaScript中的一個預期和記錄的功能嗎?或者這隻對我有用,因爲一些瀏覽器開發人員決定使其工作?
見規格的''==。這是你應該總是使用'==='代替的許多原因之一。 – SLaks
parseInt(13,10)=== 13'對於'+ [13]'是相同的,所以強制該數組返回'13',並且比較非嚴格的類型強制 – adeneo
@SLaks我不能找到它,'=='不是最可以googleable的字符串。谷歌搜索'JavaScript比較'我找不到明確說明這種行爲的資源。 –