ES6中重要的知识点

一Symbol

给对象添加属性时,如 let obj = {}; obj.a = 1  这是应该用一Symbol作为属性名

二对象的属性可以用表达式

let obj = {};obj[a] = 1  或者 let a = 'a'  obj  = { [a] : 1 }  可以有效防止对象属性名相同被覆盖

三.对象的 for in 和 object.keys()遍历

  • for...in循环:只遍历对象自身的和继承的可枚举的属性(不含 Symbol 属性)。
  • Object.keys():返回对象自身(不含继承的)的所有可枚举的属性的键名(不含 Symbol 属性)。
  • Object.getOwnPropertySymbols(obj)返回一个数组,包含对象自身的所有 Symbol 属性的键名。

四、对象的结构是浅拷贝,如果一个值是复合类型的如: const {arr} = { arr: [1,2]} 解构出来的arr是引用地址 

五、对象的扩展运算符

只能取对象自身且是可遍历的值,取不到对象原型上的值。对象的结构赋值是可以取到对象原型上的属性的

const o = Object.create({ x: 1, y: 2 });
o.z = 3;

let { x, ...newObj } = o;
let { y, z } = newObj;
x // 1
y // undefined
z // 3

对象的扩展运算符等同于使用Object.assign()方法。

let aClone = { ...a };
// 等同于
let aClone = Object.assign({}, a);

let ab = { ...a, ...b };
// 等同于
let ab = Object.assign({}, a, b);

与数组的扩展运算符一样,对象的扩展运算符后面可以跟表达式。

const obj = {
  ...(x > 1 ? {a: 1} : {}),
  b: 2,
};

六、do表达式

七、&& 运算符的优先级高于 || 运算符的优先级

||运算符的优先级高于?:运算符的优先级

八、&&和||是左关联

?:运算符是右关联

=也是右关联

九、数组也可以解构

let [key, value, value2] = [1,2,3]
console.log(key, value,value2) //1 2 3

const items = [
  ['name', '张三'],
  ['title', 'Author']
];

const map = new Map();

items.forEach(
  ([key, value]) => map.set(key, value)
);

十、数组的indexOf

let dataArr = [2,3,5,1,3,5]
dataArr.splice(dataArr.indexOf(1),1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值