解构赋值给默认值:
var json={};
var a=json.a || 12 //如果a为空,给a初始值12
语法:var {time=12,id=0}={}//time为空时,给time12
3、复制数组
复制数组:
1、循环
2、Array.from(arr)
3、var arr2=[...arr]
...实参:
function show(...args){args.push(5);
console.log(args)};
4、循环
var arr=['apple','banana','orange','pear'];
for(var i in arr){//0 1 2 3 索引
console.log(i);
}
for(var i of arr){//apple banana orange pear
console.log(i)
}
for of 可以循环数组,不能循环json 真正的目的为了循环 map对象
Map对象:和json相似,也是一种key-value形式
var map =new Map();
设置:map.set(name,value);map.set('a','apple')
获取:map.get(name) //不能 map.a
删除:map.delete(name)//不能json中的用法delete json.a
遍历map:
不能使用for in ,没有效果
for(var name of map){
console.log(name);//a,apple b,banana
}
for(var[key,value]of map.entries()){
console.log(key,value);//key value
}
for(var key of map.keys()){//只循环key
console.log(key);//key
}
for(var val of map.values){
console.log(val);//value
}
for of 也可以循环数组:
只循环值:
for(var value of arr)
只循环索引:
for(var key of arr.keys()){}
索引和值都循环:
for(var some of arr.entries()){}
5、箭头函数
注意:this问题,this指向了window
arguments,不能使用了
6、单题模式:
以前的写法:
var person={
name:'abc',
age:16,
showName:function(){
alert(this.name);
}
showAge:function(){
alert(this.age)
}
}
person.showName();
ES6新的写法:
var age=101;
var person={
name,
age,
showName(){
return this.name;
}
showAge(){
return this age;
}
}