一,Rest and Spread操作符: 用來聲明任意數量的方法參數也就是“...”操作符 輸出結果: 18 jajj 89 function test (a, b, c) { console.log(a); console.log(b); console.log(c); } var agrs = ...
一,Rest and Spread操作符:
用來聲明任意數量的方法參數也就是“...”操作符
輸出結果:
18
jajj
89
function test (a, b, c) {
console.log(a);
console.log(b);
console.log(c);
}
var agrs = [1, 2];
test(...agrs);
輸出結果:
1
2
undefind
var agrs = [4,5,6,7,8,9];
test(...agrs);
輸出結果:
4
5
6
根據定義的參數取傳入的參數
二,generator函數;
控制函數的執行過程,手工暫停和恢復代碼執行
在TypeScript的編輯器中不支持這個語法,需要在babeljs的編輯器中聯繫(http://babeljs.cn)
function* doSomething () {
console.log("start");
yield;
console.log("end");
}
//調用generator函數,必須賦值給一個變數
var func1 = doSomething();
//通過next()來調用
func1.next();
func1.next();
三.destructuring析構表達式
通過表達式將對象或者數組拆解成任意數量的變數。
function getStock() {
return{
code: "IBM",
price:100
}
}
var { code, price } = getStock(); //但是變數的命名和欄位必須一樣
var {code: codeX, price} = getStock;//當你定義的變數與對象的變數不一樣時
console.log(code);
console.log(price);
輸出結果:
“IBM”
100
當對象中的欄位是一個對象
function getStock() {
return{
code: "IBM",
price:{
price1: 100,
price2: 120
}
}
}
var { code,price:{price2}} = getStock();
數組用析構表達式
var array1 = [1, 2, 3];
var [ , num1, num2] = array1;
console.log(num1);
console.log(num2);
輸出結果:
2
3
var array1 = [1, 2, 3];
function doSomething([num1,num2,...others]) {
console.log(num1);
console.log(num2);
console.log(others);
}
doSomething(array1);
輸出結果:
1
2
[3]
有點主要是根據對象或者數組初始化一些變數,可以寫更少的代碼;