typeof 運算符

undefined 并不是 undeclared (未聲明);
undefined 是JS 的七種內置類型之一;
undeclared 是術語, 表示沒有在作用域聲明過的變量.

如果對一個 undeclared 變量做 RHS, 會拋出 ReferenceError: xx is not defined.
這是個容易讓人誤解的提示, 實際上, 應該報 ReferenceError: xx is not declared 更加合適.
有個RHS是例外, 那就是typeof 運算符

對于 undeclared 變量, typeof 運算符會返回 undefined, 并不會拋出異常.

這是因為 typeof 有個特殊的安全防范機制.
這樣, typeof 就能夠提供一個非常有用的功能—— 檢測變量的存在性

例如, 下屬代碼會拋出錯誤


if(DEBUG){
    doSomething()
}

可以用 typeof 來安全的實現:

if(typeof DEBUG !== "undefined"){
    doSomething()
}

這種情況下, 也可以用全局對象來檢查變量存在性, 例如window.DEBUG. 這時候, 需要注意不同運行環(huán)境下的全局變量(例如 node.js 中, 就不是window )

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容