在ES6中,三個(gè)點(diǎn)(…) 有2個(gè)含義侯养。分別表示 擴(kuò)展運(yùn)算符 和 剩余運(yùn)算符。
?首先這個(gè)三點(diǎn)運(yùn)算符號(hào)必須放在末尾
1.基礎(chǔ)
let [a,b,c,....d]=[1,2,3,4,5,6]? ===》 結(jié)果: d=[4,5,6] 仍然是數(shù)組
let {x,y,...y1}={x:10,y:11, p:10,d:20}? ? 結(jié)果: y1={p1:10,d:20} 仍然是對(duì)象
擴(kuò)展運(yùn)算符號(hào)...:
例一:
test(x,y,z){
?console.log(x,y,z);
}
函數(shù)調(diào)用:?
? ?test(...[1,2,3]);? ?//這里數(shù)組[1,2,3,] 直接被解析成數(shù)字1,2,3序列
例二:
let a=[1,2,3]
let b =[5,6,...a,7] ====>結(jié)果? ?b=[5,6,1,2,3,7]? // 仍然是將數(shù)組進(jìn)行解析
例三:
let b=[1,2,...[],5,6] ;? ===> b=[1,2,5,6] 空數(shù)組沒有任何影響
例四:
let a='hello';
let b=[...a]; ===> b=['h','e','l','l']? ?
剩余運(yùn)算符(rest)
作用與擴(kuò)展運(yùn)算符恰好相反惕澎,把逗號(hào)隔開的值序列組合成一個(gè)數(shù)組廊驼。
例一:
? ? foo(x,y,...z){
? ? ? ? ?console.log(x,y,z);
? ?}
foo(1,2,3); ===> z=[3]
例二:
let [a,b,..c]=[1,2,3,4,5,6] ===> c= [3,4,5,6]
例三:
let [a,...b]=[1] ===> b=[] 是個(gè)空數(shù)組
let {x,y...d}={x:1,y:2};? ===> d={}