es6新增內容簡單概覽

2021-08-08 12:49:17 字數 2661 閱讀 1416

箭頭函式 arrow function

es6新增內容,用箭頭語法簡寫函式,且this會自動繫結當前上下文:

[1, 2, 3, 4].map(d => d * d);//單行

//也可以寫多行

[1, 2, 3, 4].map(d => )

等價於

[1, 2, 3, 4].map(function

(d) )

class關鍵字

現在原生支援 class 關鍵字來宣告乙個類了,雖然只是乙個語法糖,最終還是基於原型繼承實現的。但是畢竟可以很方便的實現建立和繼承乙個類了。

class

people

sayname

() }

varpp = new

people

('張三');

pp.sayname

();

等價於

function

people

(name) ;

people.prototype.sayname = function

() ;

var pp = new people('張三');

pp.sayname();

變數的解構

es6允許多對變數直接賦值,寫法上屬於「模式匹配」,即等號兩邊模式相同,右邊的值就會根據位置賦予左邊變數對應的值。

let [a, b, c] = [1, 2, 3];

//a=1

; //b=2

; //c=3

; let [, , c] = [1, 2, 3]

//c=3

; let [a, ...b] = [1, 2, 3, 4, 5];

//a=1

; //b=[2,3,4,5];

let [a, b, c, ...d] = [1]

//a=1

; //b=undefined;

//c=undefined;

//d=;

函式宣告的延伸屬性

es6在構建乙個函式時候,引數可以不需要指定個數,用延伸屬性代替具體位數

function

aa(x,...y)

aa(1,2,3,4)

函式預設變數

es6 允許為函式的引數設定預設值,即直接寫在引數定義的後面

function log(x, y = 'world') 

log('hello') // hello world

log('hello', 'china') // hello china

log('hello', '') // hello

let和const命令

es6 新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的**塊內有效。

a // referenceerror: a is not defined.

b // 1

const宣告乙個唯讀的常量。一旦宣告,常量的值就不能改變。

const pi = 3.1415;

pi // 3.1415

pi = 3;

// typeerror: assignment to constant variable.

iterator遍歷器和for..of迴圈

iterator是一種介面,為各種不同的資料結構提供統一的訪問機制。任何資料結構只要部署iterator介面,就可以完成遍歷操作(即依次處理該資料結構的所有成員)。

iterator 的遍歷過程是這樣的。

(1)建立乙個指標物件,指向當前資料結構的起始位置。也就是說,遍歷器物件本質上,就是乙個指標物件。

(2)第一次呼叫指標物件的next方法,可以將指標指向資料結構的第乙個成員。

(3)第二次呼叫指標物件的next方法,指標就指向資料結構的第二個成員。

(4)不斷呼叫指標物件的next方法,直到它指向資料結構的結束位置。

每一次呼叫next方法,都會返回資料結構的當前成員的資訊。具體來說,就是返回乙個包含value和done兩個屬性的物件。其中,value屬性是當前成員的值,done屬性是乙個布林值,表示遍歷是否結束。

var it = makeiterator(['a', 'b']);

it.next() //

it.next() //

it.next() //

function

makeiterator

(array)

: ;}

};}

乙個資料結構只要部署了symbol.iterator屬性,就被視為具有iterator介面,就可以用for…of迴圈遍歷它的成員。也就是說,for…of迴圈內部呼叫的是資料結構的symbol.iterator方法,for…of 是對值的遍歷 。

var arr = ['a', 'b', 'c', 'd'];

for (let a in arr)

for (let a of arr)

ES6的新增內容

關於let 和const變數的申明 let申明的變數不存在預解析 let宣告不允許變數的重複 es6引入了塊作用域,在塊作用域內let和const再塊作用域內定義的變數 外部不可以訪問 const用來宣告常量,不允許重新賦值,宣告時必須初始化 解構賦值 變數的解構賦值 陣列的解構賦值 let a,b...

ES6入門概覽一

一 let const 1.let命令 宣告變數僅在塊級作用域有效 let實際上為js新增了塊級作用域 好處 不存在變數提公升 內部宣告的變數 函式 不會影響外部 不可重複宣告變數 2.const 宣告常亮 宣告時賦值 宣告變數 1.var 2.function es5 全域性物件屬性 3.let ...

ES6 規範內容

ecmascript 6 1.宣告了let命令,與var不同的是,let宣告的變數只在 塊內有效 eg var a for var i 0 i 10 i map.set person,student map.get person out student pro size set key,value ...