達成したいこと:何かがうまくいかなかった場合(if (false)
)、オブジェクトA
を再定義してください。次に、新しい変数a
を作成してA
に割り当てます。if(false)文が読み込まれたのはなぜですか?
class A {
}
class B {
}
class C {
constructor() {
if (false) {
console.log('hit'); // never hit to
var A = B
}
var a = A;
console.log(a) // undefined
}
}
var c = new C();
私はラインvar A = B
が実行されたか分からないが、私はif
ステートメントを削除した場合、console.log(a)
は印刷されます:
class A {
}
私の質問:なぜ私は取得していますundefined
行内console.log(a)
?
実行時ではなく、解析時にvarsが吊り上げられます – dandavis
ES2015を使用しているときに、 'let' /' const'に切り替えると、もはや 'var'を使用する本当の理由はありません。 – zerkms
異なる結果が期待された理由を説明できますか? –