es6特性介紹(中)

2021-09-14 05:05:34 字數 1590 閱讀 2910

功能和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...