箭頭函式 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 ...