擴展運算符
概念:將數(shù)組或?qū)ο筠D(zhuǎn)換成參數(shù)序列,使用逗號分隔的序列并级。
作用:1拂檩、數(shù)組、對象的合并嘲碧;2稻励、函數(shù)剩余參數(shù);3愈涩、代替argument钉迷;
//數(shù)組合并
var arr1=[10,20,30];
var arr2=[40,50,60];
var newArr=[...arr1,...arr2];
//展開數(shù)組
console.log(Math.max(...arr));
//對象合并
var obj1={width:100,height:100};
var obj2={left:100,top:100};
var newObj={...obj1,...obj2};
Object.assign
//合并對象
var obj1={name:"張三",age:20};
var obj2={sex:"男"};
var newObj=Object.assign(obj1,obj2);
console.log(newObj)//{name: "張三", age: 20, sex: "男"}
解構賦值
概念:允許按照一定的格式,從對象和數(shù)組中提取值钠署。
//數(shù)組解構
let [a,b,c]=[1,2,3];
//對象解構:對象解構時糠聪,key值必須要一一對應
let {name,age}={name:"張三",age:20};
//對象解構+別名
let {name:_name,age:_age}={name:"張三",age:20};
//多重解構
let {obj:{name},arr:[a,b]}={obj:{name:"張三",arr:[10,20]}};
//案例
let {left:l,top:t}=document.getElementById("box");
字符串模板
ES6寫法——使用 `` 代替 "" 或 '' ,使用${num}實現(xiàn)變量拼接。
var num=0707;
//常規(guī)寫法
var a="<div>"+
"<span>"+num+"</span>"+
"</div>";
//ES6寫法
var b=`
<div><span>${num}</span></div>
`
字符串搜索
//includes方法:str.includes(內(nèi)容)谐鼎,找到了返回true舰蟆,找不到放回false
//startWith:判斷是否位于頭部
//endWith:判斷是否位于尾部
var str="good day!";
str.includes("day");
str.startsWith("g");//true
str.endsWidth("!");//true
Array.find()
通過條件查找數(shù)據(jù),返回第一個符合條件的數(shù)據(jù)
var arr=[1,2,3,4];
var n=arr.find(function(item,index,array){
return item>3
})
console.log(n);
函數(shù)參數(shù)默認值
//ES6之前函數(shù)設置默認值
function fn(x){
var x=x||10
}
//ES6函數(shù)默認值狸棍,等價于上面的寫法身害,如果沒有傳遞參數(shù),就用默認值10
function fn(x=10){
}
剩余參數(shù)
//fn函數(shù)中a接受實參1,...rest接受剩余參數(shù)為一個數(shù)組
function fn(a,...rest){
console.log(rest)//[2,3,4,5]
}
fn(1,2,3,4,5)