let 不會有變數提升;如果我在宣告之前使用let,瀏覽器應該會報錯;但是我的列印出來是未定義;是我理解錯誤還是我寫法錯誤;
錯誤Uncaught ReferenceError: a is not defined表示變數未定義, 而不是指這個變數是undefined, 如果變數variable的值是undefined undefined而不應該報錯.
Uncaught ReferenceError: a is not defined
undefined
variable
而不應該報錯.
let和const宣告的變數不會有宣告提前,這表示執行時期執行上下文在沒有進行詞法綁定前,變數不可存取。
function foo(){ | | not accessible | let a = 1 }
這裡 第二行程式碼 沒啥意義
第一行 列印 列印時由於是 let所是 not define 因為沒有提升第二行 let xxx 不寫應該也是這個錯誤
如果是 var 就是 undefined 因為 有了提升的變數 但是並沒有指定或複製
錯誤
Uncaught ReferenceError: a is not defined
表示變數未定義, 而不是指這個變數是undefined
, 如果變數variable
的值是undefined
undefined而不應該報錯.
let和const宣告的變數不會有宣告提前,這表示執行時期執行上下文在沒有進行詞法綁定前,變數不可存取。
這裡 第二行程式碼 沒啥意義
第一行 列印 列印時
由於是 let所是 not define 因為沒有提升
第二行 let xxx 不寫應該也是這個錯誤
如果是 var 就是 undefined
因為 有了提升的變數 但是並沒有指定或複製