ES6

params default value & params environment & TDZ

看 ES6 parameter default value 的时候,发现一些很困惑的现象。

1
2
3
let y = 1;
function foo(x = y, y) {}
foo();

结果是 reference error: y is not defined. 因为这里 y 是处在 TDZ(Temporal Dead Zone)。

1
2
console.log(x); // TDZ
let x;

可是为什么呢,明明全局有定义 y 呀,为什么未定义?难道参数默认值有单独的作用域?继续试验:

ES6 Class一瞥

Class

ES6的class提供了一个简洁的语法糖来实现之前通过原型链来实现的Class的功能。

可用性

截止目前(2015-04-05),Class目前还基本没有浏览器支持,除了Firefox39最新版已经实现了。具体的支持情况可以在这里看到:ECMAScript compatibility table

可以通过Traceur来试验Class的功能。