84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
次のコード:
実行後の出力は未定義です。
if 条件を削除した後の出力は 2 番目の関数です
関数がプロモートされたことがわかると、2 番目のコードでは、2 番目の a 関数が console.log(a) コードの前にプロモートされるため、2 番目の a 関数が実行されて出力されます。 しかし、コードの最初の部分で、なぜ unknown が出力されるのかわかりません。
条件付き関数宣言は関数式と同じ方法で処理されます。したがって、条件付き関数宣言では、関数宣言のホイスティング特性が失われます。
参考URL:/q/10...
if else ステートメントで function キーワードを使用して関数を宣言する場合、変数の昇格はブラウザーによって異なります。ここでは変数の宣言がプロモートされているだけで、else が削除されると純粋な関数スコープになります。
あなたの IIFE で
は関数宣言ではなく関数式です。 if が削除されていない場合、conosle.log(a)、a は未定義変数 a を表します。https://developer を参照してください。モジラ..
条件付き関数宣言は関数式と同じ方法で処理されます。したがって、条件付き関数宣言では、関数宣言のホイスティング特性が失われます。
参考URL:/q/10...
if else ステートメントで function キーワードを使用して関数を宣言する場合、変数の昇格はブラウザーによって異なります。ここでは変数の宣言がプロモートされているだけで、else が削除されると純粋な関数スコープになります。
リーリーあなたの IIFE で
リーリーは関数宣言ではなく関数式です。 if が削除されていない場合、conosle.log(a)、a は未定義変数 a を表します。https://developer を参照してください。モジラ..