1、在ES5中我們定義一個變數是通過 var 關鍵字來定義的。如:var name = 'zjl' var obj = {name:'zjl',age:'18'} 2、在ES6中新引進了兩個定義變數的關鍵字 let 和 const。 3、ES6之 let: let 的用法和 var 很類似,但它存在 ...
1、在ES5中我們定義一個變數是通過 var 關鍵字來定義的。如:var name = 'zjl' var obj = {name:'zjl',age:'18'}
2、在ES6中新引進了兩個定義變數的關鍵字 let 和 const。
3、ES6之 let:
let 的用法和 var 很類似,但它存在自己的特性 主要有以下幾點:
- let 所聲明的變數,只在 let 命令所在的代碼塊內有效
{
let a = 10;
var b = 1;
}
console.log(a,b);
以上的列印會報錯:ReferenceError: a is not defined 顯示 a 未定義
- 不存在變數提升
console.log(bar); // 報錯ReferenceError
let bar = 2;
- 暫時性死區:在代碼塊內,使用let命令聲明變數之前,該變數都是不可用的
var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
- 不允許重覆聲明
function test() {
let a = 10;
let a = 1;
}
test()
// 會報錯
4、ES6之const關鍵字,與let相比多了以下兩個特性(與let相同的特性這裡不再贅述)
- 變數一旦聲明就必須賦值 const a; //會報錯
- const聲明一個變數是只讀的,不能對他進行修改 const a=1; a=2; //會報錯