以下のコードは、ブラウザとNode.jsの表示が異なります。ネイティブブラウザとNode.jsのJavaScript関数宣言が異なる結果を返す
ブラウザの結果はa
です。
Node.jsの結果はb
です。
if (1) {
function foo() { return 'a'; }
} else {
function foo() { return 'b'; }
}
console.log(foo());
このコードスタイルは反パターンですが、コードはまだ環境内で実行できます。
どのように説明しますか?
FYI。
Node.jsの環境リンク: https://repl.it/CgWh
ネイティブブラウザ環境リンク: https://repl.it/CgWj
これらのリンクは多分永久的ではありません。
関数の宣言は、標準的な私の知る限りではありませんので、あなたは行動が実装間で同じであることを期待すべきではありません。 – elclanrs