我看到了下面的JavaScript代碼,它讓我感到困惑,因爲從邏輯0將永遠4或5:在JavaScript中,0 === 4是什麼意思?
if (0 === 4) { // Safari
safari.self.addEventListener("message", safariMessageListener, false);
} else if (0 === 5) { // Opera
opera.extension.onmessage = operaMessageListener;
}
我會認爲這個代碼的工作。那麼程序員是否設法以某種方式重新定義0,或者0不知道如何指向數字0?任何人都可以解釋這個代碼,爲什麼會有人這樣的代碼?這種技術的優點是什麼? (除了令人困惑的人喜歡我!)
爲了完整起見,此片段來自YouTube中心Grease Monkey插件。它的網址是:
https://github.com/YePpHa/YouTubeCenter/wiki/Developer-Version
而完整的方法是:
function initListeners() {
if (support.CustomEvent) {
window.addEventListener("ytc-content-call", eventListener, false);
} else {
window.addEventListener("message", messageListener, false);
}
window.addEventListener("unload", windowUnload, false);
if (0 === 4) { // Safari
safari.self.addEventListener("message", safariMessageListener, false);
} else if (0 === 5) { // Opera
opera.extension.onmessage = operaMessageListener;
}
}
https://github.com/YePpHa/YouTubeCenter/blob/85a3ff38dc7523757ee449903026ec270d8fb387/experiments/inject-everything.js#L467-471 – Bergi 2014-09-01 15:57:31