我剛纔一直在看Underscore.js的_.isEqual
功能和代碼的部分是這樣的:Underscore.js這行是否需要進行相等性檢查?
if (a === b) return true;
if (typeof a !== typeof b) return false;
if (a == b) return true;
我只是想知道,如果有其中第三條語句可以達成任何情況下,並評估爲true
?
編輯:只是要清楚,這不是我自己的代碼,我說的是,我讀下劃線的來源,特別是this line和我很好奇他們爲什麼這樣做。
有一些奇怪的邊緣情況下,這是可能的... –
@nickf:考慮到當類型相同時'=='和'==='是相同的,我看不出第一次和第三次測試會提供不同的結果。即使在'null'的情況下,'typeof'與內部的'Type'不同,它不強制爲除'undefined'之外的任何值,它具有不同的'typeof'值。如果那裏有*邊緣案例,你怎麼知道你會希望它強制?對相同的值進行'=='和'==='測試似乎很奇怪。要麼你想要類型強制,要麼你不需要。 – user113716
......我應該在上面的評論中通過*「you」*來闡明,我並不是想暗示* nickf *,而是*一個人*。 – user113716