void 0和undefined區別

爲什麼有的編程規範要求用 void 0 代替 undefined?

-void

void是JavaScript的一個操作符,而void 0會返回undefined,實驗出真知,可以在瀏覽器試驗一下

console.log(void 0) // undefined
console.log(void 0 === undefined) // true
  • 原因

MDN上了解一下undefined的定義:undefined是全局對象的一個屬性,也就是說,它是全局作用域中的一個變量,undefined的最初值就是原始數據類型undefined。

注: ES5之後的標準中,規定了全局變量下的undefined值爲只讀,不可改寫的,但是局部變量中依然可以對之進行改寫。

function changeUndefined () {
    var undefined = 1;
    console.log(undefined);
}
changeUndefined(); // 1

而void 0無論什麼時候都是返回undefined,這樣來看,使用void 0來代替undefined就比較穩妥,不會出錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章