es6

let&const

let:只作用於它被定義的那個作用塊
const:定義一個不能修改的常量

tip:在for循環中,設置循環變量的那部分是父作用域,循環體內部是單獨的一個子作用域,如:

for (let i = 0; i < 3; i++) {
  let i = 'abc';
  console.log(i);
}
// abc
// abc
// abc

函數參數

參數擴展/數組展開

1,收集參數
ES6 引入 rest 參數(形式爲…變量名),收集剩餘的參數
*rest Parameter 必須是最後一個

function f(a,b,...args){
alert(a,b,);//1,2,333,44,55,4
}
f(1,2,333,44,55,4);

2,展開數組
展開後的效果,跟直接把數組的內容寫在這一樣

let arr1=[1,2,3];
let arr2=[4,5,6];
let arr=[...arr1,...arr2];
alert(arr);//1,2,3,4,5,6

解構賦值

1.左右兩邊結構必須一樣;
2,右邊必須是個東西;
3,聲明和賦值不能分開;

foo是匹配的模式,baz纔是變量。真正被賦值的是變量baz,而不是模式foo。

let { foo: baz } = { foo: 'aaa', bar: 'bbb' };
baz // "aaa"
foo // error: foo is not defined

數組

map

map() 方法返回一個新數組,數組中的元素爲原始數組元素調用函數處理後的值。

let score=[20,60,61];

let result=score.map(item=>item>=60?'及格','不及格');
alert(result);  //不及格,及格,及格

reduce

語法:arr.reduce(function(prev,cur,index,arr){

}, init);
arr 表示原數組;
prev 表示上一次調用回調時的返回值,或者初始值 init;
cur 表示當前正在處理的數組元素;
index 表示當前正在處理的數組元素的索引,若提供 init 值,則索引爲0,否則索引爲1;
init 表示初始值。

實例操作

|

var arr = [3,9,4,3,6,0,9];
求數組中最大值
var max = arr.reduce(function (prev, cur) {
    return Math.max(prev,cur);
});

由於未傳入初始值,所以開始時prev的值爲數組第一項3,cur的值爲數組第二項9,取兩值最大值後繼續進入下一輪迴調。

求數組之和
var sum = arr.reduce(function (prev, cur) {
    return prev + cur;
},0);

由於傳入了初始值0,所以開始時prev的值爲0,cur的值爲數組第一項3,相加之後返回值爲3作爲下一輪迴調的prev值,然後再繼續與下一個數組項相加,以此類推,直至完成所有數組項的和並返回。

filter

forEach

參考文章: https://www.jianshu.com/p/541b84c9df90

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章