let和const都是es5,es6新版本的js語言規範出來的定義,在這以前定義一個變數只能用var。let和const都是為了彌補var的一些缺陷而新設計出來的。 簡單來說是: let是修複了var的作用域的一些bug,變的更加好用。let是更好的var。 區別: var的作用於是函數作用域,其作 ...
let和const都是es5,es6新版本的js語言規範出來的定義,在這以前定義一個變數只能用var。let和const都是為了彌補var的一些缺陷而新設計出來的。
簡單來說是: let是修複了var的作用域的一些bug,變的更加好用。let是更好的var。
區別:
- var的作用於是函數作用域,其作用域為該語句所在的函數內,而let是塊級別(作用域僅在大括弧括起來的裡面);
-
使用var聲明的變數,其作用域為該語句所在的函數內,且存在變數提升現象,註意變數提升,只是將聲明提升,賦值並不會提升;
- 使用let聲明的變數,其作用域為該語句所在的代碼塊內,不存在變數提升,也就是let聲明的變數,在聲明前無法使用, 會報出ReferenceError錯誤;
- 使用const聲明的是常量,在後面出現的代碼中不能再修改該常量的值。用
const
聲明變數後必須要賦值,否則拋出語法錯誤。