not defined是引用錯誤
undefined是值
會先進行語法分析,報錯
通過 var 聲明的變量和 let 或 const 聲明的變量,在創建相應作用域的詞法環境階段,都會注冊標識符,但僅通過 var 聲明的變量存在會變量提升,若在通過 let 或 const 聲明了變量的(塊)作用域中,先使用再聲明該變量,就會拋出錯誤:
通過 var 聲明的變量和 let 或 const 聲明的變量,在創建相應作用域的詞法環境階段,都會注冊標識符,但僅通過 var 聲明的變量存在會變量提升,若在通過 let 或 const 聲明了變量的(塊)作用域中,先使用再聲明該變量,就會拋出錯誤: