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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值