我們以前都是使用 var 關鍵字來宣告變數的。
在 es6 的時候,多了兩個關鍵字 let 和 const ,也是用來宣告變數的只不過和 var 有一些區別。
// 使用 var 的時候重複宣告變數是沒問題的,只不過就是後的會把前面覆蓋掉
var num =
100
var num =
200
通過let宣告變數,之前的區域,叫做暫時性死區。
let num;
alert
(num)
;//undefined
const num2 =20;
alert
(num2)
;
// 使用const 重複宣告變數的時候就會報錯
const num =
100const num =
200// 這裡就會報錯了
ii. let 和 const 宣告的變數不會在預解析的時候解析(也就是沒有變數提 公升)
alert
(num)
;const num =10;
alert
(num)
;`
iii. let 和 const 宣告的變數會被所有**塊限制作用範圍
// var 宣告的變數只有函式能限制其作用域,其他的不能限制
if
(true
)console.
log(num)
// 100
// let 宣告的變數,除了函式可以限制,所有的**塊都可以限制其作用域
(if/while/for/…)
if
(true
)console.log(num) // 報錯
let num num =
100 console.
log(num)
// 100
const num // 這裡就會報錯了,因為 const 宣告的時候必須賦值
ES6語法 let和const區別
var變數穿透問題 lang en charset utf 8 name viewport content width device width,initial scale 1.0 documenttitle head let和const 解決 1 var變數穿透的問題 2 變數修改的問題 for ...
ES6學習 let和const命令
1.let命令 所宣告的變數命令所在 塊有效 a referenceerror a is not defined.b 1for迴圈的計數器,就很適合let命令 for let i 0 i arr.length i console.log i referenceerror i is not defin...
ES6 一 let和const命令
在js中是沒有塊級作用域的,var 宣告的變數作用域是整個函式體,而let可以起到這一作用 console.log b 2 console.log a a is not defind 而let可以起到這一作用啊在js中變數和函式的宣告會提公升到當前作用域最頂部執行。這樣就會出現問題。var a 函式...