let 与 const
- 不存在变量提升
- 暂时性死区(在变量声明时,只要在变量还没有声明完成前使用都会报错)
- 不允许重复声明
- 块级作用域
变量的解构赋值
let [a, b, c] = [1, 2, 3];
let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3
- 解构失败,变量的值就等于undefinde
实际用途
// 交换变量的值
let x = 1;
let y = 2;
[x, y] = [y, x];
// 遍历 Map 结构
const map = new Map();
map.set('first', 'hello');
map.set('second', 'world');
for (let [key, value] of map) {
console.log(key + " is " + value);
}
// first is hello
// 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的最小浮点数之间的差