* 函数默认参数
es5模式:
function action(num) {
num = num || 200
//当传入num时,num为传入的值
//当没传入参数时,num即有了默认值200
return num
}
//传入0时 会报错
es6模式:
function action(num = 200) {
console.log(num)
}
action(0) // 0
action() //200
action(300) //300
* 箭头函数 //一个参数时可省略括号 有且仅有一个表达式时可省略return和{}
[1,2,3].map(x => x + 1)
//等同于:
[1,2,3].map((function(x){
return x + 1
}).bind(this))
*
拓展的对象功能
对象键值对重名时 方法可省略function 关键字
function people(name, age) {
return {
name,
age,
getName () {
console.log(this.name)
}
};
}
* 对象的浅复制
const obj1 = {name: 'damon',age: '18'};
const obj2 = {addres: 'china'};
console.log(Object.assign(obj1,obj2,{},{
class: '302',
like: 'game'
}))
//{name: "damon", age: "18", addres: "china", class: "302", like: "game"}
* 数据访问-----解构
//对象
const people = {
name: 'lux',
age: 20
}
const { name, age } = people
console.log(`${name} --- ${age}`) //lux --- 20
//数组
const color = ['red', 'blue']
const [first, second] = color
console.log(first) //'red'
console.log(second) //'blue'
* 展开运算符 ...
//数组
const color = ['red', 'yellow']
const colorful = [...color, 'green', 'pink']
console.log(colorful) //[red, yellow, green, pink] //类似concat 合并数组
//对象
const alp = { fist: 'a', second: 'b'}
const alphabets = { ...alp, third: 'c' }
console.log(alphabets) //{ "fist": "a", "second": "b", "third": "c"} //类似Object.assign
有时候想要除了第一项或者最后一项的其他值
//数组
const number = [1,2,3,4,5]
const [first, ...rest] = number
console.log(rest) //2,3,4,5
//对象
const user = {
username: 'lux',
gender: 'female',
age: 19,
address: 'peking'
}
const { username, ...rest } = user
console.log(rest) //{"address": "peking", "age": 19, "gender": "female"
}