es6
一、 變量
1.var缺點:
- 可以重復聲明;
- 限制修改;
- 沒有塊級作用域
2.let: 不能重復聲明;變量-可以修改;塊級作用域
3.const:不能重復聲明;常量-不可以修改;塊級作用域
4 .塊級作用域用處的例子:
使用var時,如果要實現依次點擊按鈕分別彈出1,2,3時需要如下寫法(閉包):
使用let時,如果要實現依次點擊按鈕分別彈出1,2,3時需要如下寫法():
二、 函數
1 箭頭函數
- 如果只有一個參數,()可以省略
- 如果只有一個return,{}和return可以省略
let show=function(a){
return a*2;}
show(12);//21
等價如下寫法
let show=a=>a*2;
show(12);
2 參數
1) 參數擴展/數組展開(rest parameter)
- l 收集剩余的參數
function show(a,b,…args){}
但是rest parameter必須是最后一個
這種形式是不可以的!!
- 展開數組,展開后的效果相當於把數組內容寫在這。
例如在arr=[1,2,3]中 1,2,3和…arr的寫法是等價的。例如,
let arr=[1,2,3];
let show=function(a,b,c){
alert(a);
alert(b);
alert(c);
}
show(…arr);// 等價於show(1,2,3);
2) 默認參數
傳進新參數就用新的,沒有傳進新的就用默認的。
function show(a,b=12,c=33){
console.log(a,b,c);//22,43,33
}
show(22,43);
三、 解構賦值
例:let [a,b,c]=[1,2,3];//a=1,b=2,c=3
- 左右兩邊結構必須一樣
- 右邊必須是個東西,如{2,5}就不是“東西”。
- 聲明和賦值不能分開,必須在一句話里,如下寫法不合法:
let [a,b,c];
[a,b,c]=[1,2,3];
其它例子:
打印結果:
當然,可以自己控制粒度,如上述例子也可以如下表示
打印結果:
四、 數組
1 map
作用:映射---進去幾個出來幾個,可以用來映射分數的及格等。
let arr=[1,2,3];
let result=arr.map(item=>item*2);//2,4,6
2 reduce
作用:匯總---進去一堆,出來一個,可以用來求總和、平均數等。
let arr=[2,3,4];
let result=arr.reduce((temp,item,index)=>{
if(index!=arr.length-1){
return temp+item;
}else{
return(temp+item)/arr.length//求平均數
}
})
執行過程中reduce回調函數的參數變化:
第一次:temp=2,item=3,index=1
第二次:temp=5,item=4,index=2
3 filter
作用:過濾器回調函數return true,則返回對應的item.
let arr=[
{title:’男士襯衫1’,price:75},
{title:’男士襯衫2’,price:5575},
{title:’男士襯衫3’,price:7335},
{title:’男士襯衫4’,price:725}
];
let arr.filter(item=>item>=1000);// {title:’男士襯衫2’,price:5575},{title:’男士襯衫3’,price:7335}
4 forEach
作用:循環,迭代
let arr=[1,2,3,4];
arr.forEach((item,index)=>{
alert(“index:”+index+”intem:”+item); });
注意:forEach回調函數沒有return語句。