20200402
Plan
- 你不知道的 js 下卷 -- 第二章 语法
Notes
块级作用域
- let 不会被声明提升 -- TDZ, temporal dead zone, 暂时性死区
{
typeof a; // undefined
typeof b; // TD -- Reference Error
let b;
}
- const 必须有显示的初始化(声明的时候就给它附一个值)
- 函数的块级作用域
if (true) {
function foo() {
console.log(true);
}
} else {
function foo() {
console.log(false);
}
}
首先在 node 和 chrome 中都测试了这一段代码,它既没有像书里描述的,后一个 foo 会覆盖前一个 foo(函数提升),也没有出现 reference error(块级作用域)
- 函数默认值
let z = 1;
function foo(z = z + 1) {
// ReferenceError z还没有初始化
console.log(z);
}
解构
o = { a: 1, b: 2, c: 3 };
p = { a, b, c } = o;
p === o; // true