6
ES6コード:Babel.jsでコンパイルした後、ES6コードとES5コードの結果が異なるのはなぜですか?
let foo = 'outer';
function bar(func = x => foo){
let foo = 'inner';
console.log(func());
}
bar(); // outer
結果が "外" です。
Babel.jsでコンパイルES5コード:
'use strict';
var foo = 'outer';
function bar() {
var func = arguments.length <= 0 || arguments[0] === undefined ? function (x) {
return foo;
} : arguments[0];
var foo = 'inner';
console.log(func());
}
bar(); // inner
結果が "外" です。
私はなぜ彼らが異なる結果を持っているのかわかりません。
問題が既に作成されているか、作成することができますか?いずれの場合も、あなたがあなたの答えを1つのリンクで更新した場合に役立ちます。 – zerkms
リンクを追加しました。興味深いことに、このバグのコードはこの質問に正確にあるので、私はこの質問のポイントを逃したのではないかと心配しています。 – Bakkot