1 属性的简写表示法:
先举个例子:
表明在es6中,允许只使用属性名,不写属性值。这时候属性值就等于属性名对应的变量。
let Person = {
name: 'zhangsan',
birth, // birth: birth
hello() { // hello: function () ......
console.log('我的名字是', this.name)
}
}
这种简写在平时写的vue中到处都是
如:
这里的路由router就很好理解了,就等同于:
router: router
2 rest参数和扩展运算符的使用,都是...
区别: 主要看...后面的是要被赋值还是已经有值然后赋值给别的变量或者对象。
let {a, ...z} = {
a: 1,
b: 2,
c: 3
}
console.log(z) // rest参数,后面是待赋值的变量
let arr = {
a: 1,
b: 2
}
let temp = { ...arr }
console.log(temp) // 扩展运算符 ,后面是已经初始化的对象
rest参数: 从一个对象取值,相当于将所有可遍历但尚未被读取的属性,分配到指定的对象上,所有的键都会被赋值到新对象上。
扩展运算符: 取出参数对象的所有的可遍历属性,复制到当前对象中
3 for ... in . ... 会遍历到原型对象上的属性,但是终极原型比如Object,Array等等,他们的length属性,toString()方法,可以通过可枚举属性enumerable为false来规避掉for..in这种操作。
遍历属性时,尽量还是用object.keys()方法,返回一个数组
for..of 用于遍历数组