今天继续分享es6的新特性
函数的新特性
箭头函数: var bb = (da) => {console.log(‘这是箭头函数’)} bb()
//不用函数名 也不用function关键字了,就在()和代码体{} 之间加一个箭头 =>
// 只有一个参数的时候 可以省略()
//函数代码体只有一行的情况下,可以省略{} 同时可以省略return 会自动把那一行代码返回出去
//如果使用return关键字了,外面的{}不能丢
箭头函数注意点: 箭头函数自己没有this,this通常根据上下文去找(根据当前作用域去找)
箭头函数你别new,别把他当成构造函数用,也不太适合使用 call bind apply改变this指向
箭头函数没有arguments 参数对象
适合使用在回调函数中,把箭头函数当回调函数用
如果使用简写 返回一个对象,这个对象需要用()包裹起来,如果你不包上,他会把对象的{}当成函数代码体外面的哪个{}
var a = () =>({'name':'张安',age:18})
对象的新特性
var name1 = ‘索隆’ var age = 18
// 当存放属性值的这个变量,和属性名相同的时候,可以直接写属性名,省略属性值
var obj = {
name1,
age
}
//对象里面定函数的时候,可以直接使用 函数名(){},可以省略 function
var obj = {
fun(){
alert('fun函数')
}
}
Object.is()用来判断两个参数是否相等,类似于 ===, 值和数据类型都要相同
var b = Object.is(0,-0) //false var b = 0 ===-0 // true
var b = Object.is(NaN,NaN) // true var b = Nan ===NaN
Object.assign(obj1,obj2) 合并两个对象,返回一个新对象
//把参数2这个对象合并到参数1中。如果有相同的属性,参数会覆盖掉参数1的属性
//会影响到参数1里面的原数据
//返回一个合并好的对象
var obj1 = {name:'张安',age:185};
var obj2 = {name:'李四',sex:'南'}
var b = Object.assign(obj1,obj2)
Object.keys() 返回对象中所有key 键,放到一个数组中
Object.values() 返回对象中所有value 值,返回值是一个数组,数组里面存放的是对象中所有的值
Object.entries() 返回对象中所有键和值 存放到数组中 [[name,'张三'],[age,18]]
reduce
reduce 归并数组里面的和 参数1 回调函数 参数2 [初始值]
var b = arr.reduce((a,b) =>{
return a+b // 让两个参数相加
},10)