var
- 存在变量提升
- 同一变量重复声明多次只拿到一个结果
- 可以在包含它的函数、模块、命名空间、全局作用域内部任何位置被访问
let 和 const
- 都有块级作用域
- 一个作用域内只能声明一次
- 不能在被声明之前读或写
- 直到声明前的区域都属于暂时性死区
- 使用最小特权原则,所有变量除了计划去修改的都应该使用const
type 类型别名
- type Second = number,给number这个类型命名为second,而second引用这个类型
数组解构:一一对应
- let [, second, , fourth] = [1, 2, 3, 4]
- 使用…语法创建剩余变量:
1
2let [first, ...rest] = [1, 2, 3, 4];
console.log(first,rest); // 1, [ 2, 3, 4 ]
对象解构:一一对应
1 | let o = { |
属性重命名
1 | let { a: newName1, b: newName2 } = o // 从左到右读,a重命名为newName1 |
默认值:属性为 undefined 时使用缺省值
1 | tempObject(wholeObject: { a: string, b?: number }) => { |
函数声明
1 | type C = { a: string, b?: number } |
展开操作符…
1 | let first = [1, 2] |
1 | let defaults = { food: "spicy", price: "$$", ambiance: "noisy" } |