ES6學習筆記2

2021-10-24 22:01:03 字數 2741 閱讀 8119

允許給函式引數賦初值

1 形參具有預設初始值,一般位置靠後

function add(a,b,c = 10)

let result = add(1,2);

console.log(result);

2 與解構賦值結合

function connect(options)

...會重複寫到options.

} connect()

採用解構

function connect()

connect()

es6中 引入rest引數,來獲得實參,取代es5 中的arguments

es5 通過arguments獲得的實參 是乙個物件

rest引數

通過 ...args 獲得的實參是乙個 陣列 ,即可對其進行filter、map、some、every等操作

function date(a,b,...args)

date(1,2,3,4,5,6,7)

rest 引數一定要放在所有引數最後

... 擴充套件運算子

能將 陣列 分割成用逗號分開的引數序列

const tfboys = ['易烊千璽','王俊凱','王原'];

function fn()

fn(...tfboys);

... 擴充套件運算子的應用

1 合併陣列

const kuaizi = ['王太利','肖央'];

const zuixuan = ['零花','增益'];

原來:const kuaizizuixuan = kuaizi.concat(zuixuan);

現在:const kuaizizuixuan = [...kuaizi,...zuixuan];

2 陣列淺轉殖

const arr1 = ['e','g','m'];

const arr2 = [...arr1];

console.log(arr2)

3 將偽陣列轉化為真正的陣列

const odiv = document.queryselectorall('div');本來是物件(類陣列)

const divarr = [...odiv];

console.log(divarr);

symbol的作用是給物件新增屬性和方法 表示唯一的

symbol的建立

symbol()

sybol.for('')

symbol的使用

(1)宣告乙個物件methods

game =

想給game中新增 up down 屬性或方法,可是怕game中已有

let methods =

game[methods.up] = function()

game[methods.down] = function()

(2)let youxi = ,

[symbol('cry')]:function(),

} console.log(youxi)

symbol 的其他屬性方法(自己查閱)

提到了symbol.iterator

若乙個物件擁有資料結構的interator介面(即擁有symbol.iterator)就可採用 for...of 的迭代方法對可迭代物件(包括陣列)進行遍歷

為什麼不用for...in

因為for..in返回的是 屬性名,而for...of返回的是屬性值

為什麼不用foreach()

因為foreach 可以對元素進行修改,我們要達到只遍歷不修改的效果

如果該物件中沒有symbol.iterator 怎麼辦

自定義const banji =

for(let v of banji) //列印不出 因為banji沒有symblo.iterator

自己加入

const banji =

index++;

return result;

}else;}}

}}

}for(let v of banji)

生成器函式

特殊的函式 應用到非同步程式設計

function * gen()//要有*號

let iterator = gen();

//需要通過迭代器進行分塊呼叫

iterator.next();//呼叫第一塊

iterator.next();//呼叫第二塊

iterator.next();//呼叫第三塊

執行獲取迭代化物件

function * gen()

let iterator = gen();

iterator.next();//返回

iterator.next();//返回

iterator.next();//返回

iterator.next();//返回

生成器函式的引數傳遞

function * gen(args)

let iterator = gen('aaa');

console.log(iterator.next());

//可在next函式中傳參

console.log(iterator.next('bbb'));

console.log(iterator.next('ccc'));

console.log(iterator.next('ddd'));

//控制台結果

aaabbb

cccddd

ES6學習筆記

let 塊變數 作用域為塊 const 常亮 作用域為當前塊 解構賦值 例 var x,y 1,2 字元擴充套件 at includes startswith endswith repeat codepointat 模板字串 例 正則的uiy 數值擴充套件 number.isfinite numbe...

ES6學習筆記

常用語法 1 let 與var類似,不同的是let定義的變數有塊級作用域,比如 var a 1 while true alert a 2 用let let a 1 while true alert a 12 const用來定義變數,但是定義之後的值不能再次更改了。乙個實際的用途是用來定義引入的模組,...

ES6學習筆記

var 有變數提公升 let 是塊級作用域,沒有變數提公升 模板語言 還原百分百定義的格式 const 定義常量,特殊情況可以改變值 const b 1 b 2 error const b b.a 2 ok b.c 10 ok object是記憶體位址,位址不變就沒問題 預設值 在不知道接收到個什麼...