iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
自我挑戰組

重新開始 JavaScript系列 第 6

[Day6] 'undefined' vs 'not defined'

undefinednot defined 雖然在字面上的意思,都是未定義、還未定義的意思,但兩者是有很大的區別的

undefined

當程式在運作時,因為 Hoisting 的關係,會將已宣告的變數提升,並先給予變數一個預設的值 - undefined

  • 範例如下:

    先建立一個空間給變數 nameA,但還未賦予值,系統會先賦予一個預設的值 - undefined

    var nameA;
    console.log(nameA); // undefined
    

not defined

因變數或函式沒被建立或是宣告,系統找不到此變數或函式,則會顯示 xxx is not defined 的錯誤訊息

  • 範例如下:

    此例子中,並沒有宣告變數 nameA,系統找不到,所以會顯示 is not defined 錯誤訊息

    console.log(nameA);
    // ReferenceErrer: nameA is not defined
    

undefined 的注意事項

雖然 undefined 代表了一個未定義的值,且在 JavaScript 中是可以將變數賦予值 undefined,但因 undefined 是系統編配的初始值,賦予變數值等於 undefined 可能會混淆開發者,不知是否已給予變數值,所以不應該這樣做,但若是想賦予變數一個空值,則可以使用 null

  • 範例如下:

    var nameA = null;
    console.log(nameA);
    

參考文獻

六角學院 - JavaScript 核心篇


上一篇
[Day5] 範圍鍊
下一篇
[Day7] 提升
系列文
重新開始 JavaScript32

尚未有邦友留言

立即登入留言