Open hanyuxinting opened 7 years ago
一个链接,判断各个端对ES6 的识别能力。
typeof x; // ReferenceError
let x;
typeof undeclared_variable // "undefined"
ES6 规定暂时性死区和let、const语句不出现变量提升,主要是为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为。这样的错误在 ES5 是很常见的,现在有了这种规定,避免此类错误就很容易了。
let 不允许在相同作用域内,重复声明同一个变量。
let a = 10;
a
10
let a = 3
VM972:1 Uncaught SyntaxError: Identifier 'a' has already been declared
at <anonymous>:1:1
function b(data){let data = 0;}
b(1)
VM1037:1 Uncaught SyntaxError: Identifier 'data' has already been declared
at <anonymous>:1:1
防止在同一个方法里出现多个同名变量,可以给对象属性重新命名。
const a = {b:1,c:2}
const {b:d,c:e} = a;
const f = {d,e}
读书会第三本书。 除了读书,更多的是应用。