允許給函式引數賦初值
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是記憶體位址,位址不變就沒問題 預設值 在不知道接收到個什麼...