功能和var
類似,卻去掉了很多var
身上的壞毛病
塊狀作用域
// 如果在瀏覽器環境執行的時候
console.log(a);// '123'
console.log(b);// b is not defined
不會往全域性變數上面繫結,防止全域性變數的汙染
var a = '123';
let b = '456';
// 直接結果
console.log(window.a);// '123'
console.log(window.b);// undefined;
相同作用域中不允許重複宣告相同變數
let a = '123';
let a = '456';
// 執行結果
console.log(a);// 丟擲語法錯誤:syntaxerror: identifier 'me' has already been declared
經典的例子
for(var i=1;i<10;i++)
console.log(i); // 輸出10,一不小心就汙染了全域性環境
// 使用let,就不會有這個問題
for(let j=1;j<10;j++)
console.log(j); // 丟擲引用異常:referenceerror: j is not defined
在es6
之前並沒有很好的辦法進行常量的宣告,常量:這是乙個唯讀的變數,es6
中給出了const
這個特性,專門用來處理這類問題
需要注意下,常量的物件,其中的屬性是可以被改變的const a = '123';
a = '456'; // 丟擲異常 syntaxerror: "a" is read-only
這const obj =
obj.name = 'hello 2'; // 這個地方是合法的
es6
提供的乙個新的迭代器,功能類似for...in
,只是前者返回的是value,而後者返回的是腳標
這是let data = ['a','b','c'];
for(let i in data)
for(let j of data)
es6
提供的乙個強大的特性,可以通過非侵入的方式,修改物件的預設行為
可以進行**的屬性還有很多:var obj = ;
var handler =
};// 設定**
var proxy = new proxy(obj,handler);
console.log(proxy.name);
var handler =
ES6新特性詳細介紹
一 var let const 的區別 let和const宣告變數不存在變數提公升,如果要使用這個變數,我們需要在變數定義之後使用 let和const不能重複宣告變數,如果重複宣告會報錯 用let 和 const 在全域性宣告變數不會給window增加屬性 let和const出現在 塊中,會把 塊 ...
es6新特性 ES6新特性(一)
var 1 var宣告的是函式作用域 區域性 但在if for等定義的變數是全域性的 2 var 具有變數提公升,預解析 3 在同乙個作用域下,var可以宣告多次 4 var 宣告的變數會掛載到window上 let1 let不存在變數提公升,在變數使用之前,必須要先宣告 2 let在同一作用域下,...
ES6新增特性
let 1.let宣告的變數不會掛在window中,不會像var宣告的變數一樣造成全域性變數的汙染 2.新增了乙個塊級作用域 以前只有函式作用域,全域性作用域 3.let是不允許重複宣告 4.let不會有宣告提前 var num 15 全域性變數 console.log num 15 console...