的代碼在引導的微細化以及unminified JS文件的第一行間尋找,有一個直接的差異:爲什麼Javascript minifiers會將===轉換爲==?
// bootstrap.js
if (typeof jQuery === 'undefined') { ... }
與
// bootstrap.min.js
if("undefined"==typeof jQuery)...
(見自己:bootstrap.js和bootstrap.min.js)
我很困惑,爲什麼這是允許的。我的(也許是天真的)理解是,===
總是會帶來性能上的提升,並且經常可以防止出現意想不到的結果(例如,與0或""
進行的虛假比較)。看起來文件大小的小增益在性能上會有損失,並可能導致錯誤的結果。任何人都可以在這裏放光?
'typeof'總是返回一個字符串,所以'==='是不必要的。文件運行通過的縮小器或其他處理器可能已經認識到這一點。沒有可能導致錯誤的結果,即使這條線經常運行足以成爲瓶頸,任何性能差異都會被拋出。 – user2357112
每個人都在沒有完全理解問題的情況下回答。 – ndugger
@NickDugger不是真的;這個問題很清楚。只有當操作數不是相同類型時,'==='的性能優勢纔有意義。 – Pointy