1、暂时性死区,let、const
2、const obj = Object.freeze({}); obj.prop = 123; // 报错 const 指向一个地址,如果这个地址里存放这一个对象,那么对象的属性可以改变的,所以obj也会随着改变。如果不想它改变,就用freeze
3、Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 (两者的主要区别是 一个 for-in 循环还会枚举其原型链上的属性)。
4、for...0f遍历
const map new Map();map.set('first', 'hello');map.set('second', 'world');for ( let [key, value] of map ) { console.log( key + ' is ' + value );}
5、变量解构复制的用途
- 交换变量的值
let x = 1;let y = 2;[x, y] = [y, x];
- 从函数返回多个值
function fn() { return [1, 2, 3];}let [a, b, c] = fn();
- 函数参数的定义
- 提取JSON数据
- 函数参数的默认值
- 遍历Map结构
- 输入模块的指定方法
6、string新增方法
- Unicode表示法
- codePointAt() 对应charCodeAt()
- String.fromCodePoint() 对应String.fromCharCode()
- for...of
- at()(草案)
- normalize() NFC NFD NFKC NFKD
- includes(), startsWith(), endsWith()
- str.repeat(3)
7、枚举属性 Object.getOwnPropertyDescriptor( obj, 'foo' ); Object.getOwnPropertyDescriptors(obj); 目前,有四个操作会忽略enumerable为false的属性。 for...of Object.keys(obj); JSON.stringify(); Object.assign(); Object.getOwnPropertyNames(obj); Object.getOwnPropertySymbols(obj); Reflect.ownKeys(obj);
8、Set Map WeakSet: WeakSet 的一个用处,是储存 DOM 节点,而不用担心这些节点从文档移除时,会引发内存泄漏。
9、Proxy set: funciton(obj, prop, value, proxy) { }