を動作するようには思えdoes notの私のコードです:時間的デッドゾーン(ES6)は、以下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1 id="message"></h1>
<script src="traceur/traceur.js"></script>
<script src="traceur/BrowserSystem.js"></script>
<script src="traceur/bootstrap.js"></script>
<script type="module">
var x = 'outer scope';
(function() {
console.log(x); //Expected undefined, got undefined ! this is as expected.
var x = 'inner scope';
}());
//same as above, but changed to var to let and x to y
let y = 'outer scope';
(function() {
console.log(y); //Was expecting ReferenceError here, but got undefined. WTF ??!!!
let y = 'inner scope';
}());
</script>
</body>
</html>
そのましょう-VARは、その前に使用した場合にはES6の時間ドロップゾーン(TDZ)はにReferenceErrorをスローする必要がありそうです宣言されています。
ただし、この例ではletに対して未定義となっています。 どこが間違っていますか?
この問題は長い間続いており、この日は無駄になりました。 (すべてのポインタは非常に助けになるだろう)。私はChrome v58を使用しています。
v58には現在のブラウザの下でhttps://kangax.github.io/compat-table/es6/のようにes6互換性があります)。
私は痕跡部分を剥ぎ取り、バベルに掲示して試してみて、同じ結果を得ました。
なぜ私のクロームv58で動作していないのだろうか。たぶんそれは他の何かを必要とするでしょうか?
FYI、これは時間的**死んだ**ゾーン*、一時的な*ドロップ*ゾーンと呼ばれています。 –