let 与 const

  • 不存在变量提升
  • 暂时性死区(在变量声明时,只要在变量还没有声明完成前使用都会报错)
  • 不允许重复声明
  • 块级作用域

变量的解构赋值

  1. let [a, b, c] = [1, 2, 3];
  2. let [foo, [[bar], baz]] = [1, [[2], 3]];
  3. foo // 1
  4. bar // 2
  5. baz // 3
  • 解构失败,变量的值就等于undefinde

实际用途

  1. // 交换变量的值
  2. let x = 1;
  3. let y = 2;
  4. [x, y] = [y, x];
  5. // 遍历 Map 结构
  6. const map = new Map();
  7. map.set('first', 'hello');
  8. map.set('second', 'world');
  9. for (let [key, value] of map) {
  10. console.log(key + " is " + value);
  11. }
  12. // first is hello
  13. // second is world

字符串的扩展

  • 字符的Unicode表示法(码点放入大括号)

字符串的新增方法

  • String.fromCodePoint()
  • String.raw()
  • codePointAt()
  • normalize()
  • includes()
  • startsWith() 返回布尔值,表示参数字符串是否在原字符串的头部
  • endsWith() 返回布尔值,表示参数字符串是否在原字符串的尾部
  • repeat() 返回一个新字符串,表示将原字符串重复n次
  • padStart()/padEnd() 补全字符串长度
  • trimStart()/trimEnd()

数值的扩展

  • 二进制和八进制的表示法(Ob/OB, Oo/OO)
  • Number.isFinite(),Number.isNaN()
  • Number.parseInt(),Number.parseFloat()
  • Number.isInteger() 判断是否是整数,但是会有精度问题产生误判
  • Number.EPSILON 表示1于大于1的最小浮点数之间的差