ECMAScript6.0 笔记
目录
新特性
let,const,箭头函数,……
变量,let和const(常量)
var
1.可以重复声明
2.无法限制修改
3.没有块级作用域 (如函数内声明,函数外可以使用)
let
1.不可以重复声明
2.有块级作用域
const
1.不可以重复声明
2.有块级作用域
3.限制修改
函数,箭头函数
函数的参数
1.参数扩展/数组展开
2.默认参数
------------------------------------------------------------------------------
参数扩展:
1.收集参数
function show(a, b, ...args){}
*Rest Parameter必须是最后一个
2.展开数组
...arr => 1,2,3
*展开后的效果,跟直接把数组的内容写在这儿一样
------------------------------------------------------------------------------
默认参数
$('#div1').animate({width: '200px'});
$('#div1').animate({width: '200px'}, 1000);
//普通函数 除a,b外的其他参数全部保存至args (使用:args[0],args[1]...)
function f1(a,b,...args){
console.log(a,b,args);
}
//默认参数
function f2(a,b=1)
{
console.log(a,b);
}
f2(1); //a=1,b=1 使用默认值
f2(1,2);//a=1,b=2 使用传过来的值
//箭头函数
//eg.1
let show=(a)=>{
alert(a);
};
//eg.2
let show=(a)=>{return a*2;}
//如果:
//1.()——只有一个参数
//eg.1 可以写成
let show=a=>{alert(a);}
//2.{}——只有一个return
//eg.2 可以写成
let show=a=>a*2;
解构赋值
解构赋值:
1.左右两边结构必须一样
2.右边必须是个东西
3.声明和赋值不能分开(必须在一句话里完成)
//eg.1 普通变量赋值
let a=1;
let b=2;
let c=3;
//eg.2 解构赋值
let [a,b,c]=[1,2,3];
/*eg.1 和 eg.2 效果是一样的。*/
//eg.3
let [a,b,c,d]=[1,[1,2,3],'abc',{"a":1,"b":"cc"}];
数组
reduce(callback(pre,curr,index)) 汇总,pre 上一次计算的结果,curr当前值,index索引
//例1 求和
let arr=[8,9,10,11,12];
let total=arr.reduce(function (pre,curr, index){
return pre+curr;
});
console.log(total);//50
//例2 求平均数
let arr=[8,9,10,11,12];
let avg=arr.reduce(function (pre,curr, index){
if(index==arr.length-1)
return (pre+curr)/arr.length;
else
return pre+curr;
});
console.log(avg);//10
map(callback(item)) 映射 ,item当前元素,返回与之对应的数组
//eg.1 根据arr数组 生成一个新数组result,result每个 元素是arr元素的2倍
let arr=[12,5,8];
let result=arr.map(function (item){
return item*2;
});
//也可以写成 let result=arr.map(item=>item*2);
console.log(result);
filter(callback(item)) 过滤器 item 当前值,返回true时保留当前元素,false删除当前 元素
//eg.1 显示25岁以下用户
let arr=[
{name: 'ken', age: 36},
{name: 'john', age: 26},
{name: 'mei', age: 22},
{name: 'lin', age: 18}
];
let result=arr.filter(json=>json.age<25);
console.log(result);
indexOf()
forEach()