ES6面试易错点总结

536 阅读1分钟

1.let/const

//  暂时性死区
function bar(x = y, y = 2) {
  return [x, y];
}
bar(); // 报错 上面代码中,调用bar函数之所以报错(某些实现可能不报错),是因为参数x默认值等于另一个参数y,而此时y还没有声明,属于”死区“。如果y的默认值是x,就不会报错,因为此时x已经声明了。

function bar(x = 2, y = x) {
  return [x, y];
}
bar(); // [2, 2]


// 不报错
var x = x;

// 报错
let x = x;
// ReferenceError: x is not defined

未完待续...