javascript - JS の関数プロモーションについて質問したいのですが?
代言
代言 2017-06-12 09:30:06
0
3
606

次のコード:

リーリー

実行後の出力は未定義です。

if 条件を削除した後の出力は 2 番目の関数です

リーリー

関数がプロモートされたことがわかると、2 番目のコードでは、2 番目の a 関数が console.log(a) コードの前にプロモートされるため、2 番目の a 関数が実行されて出力されます。
しかし、コードの最初の部分で、なぜ unknown が出力されるのかわかりません。

代言
代言

全員に返信(3)
代言

条件付き関数宣言は関数式と同じ方法で処理されます。したがって、条件付き関数宣言では、関数宣言のホイスティング特性が失われます。

参考URL:/q/10...

いいねを押す +0
刘奇

if else ステートメントで function キーワードを使用して関数を宣言する場合、変数の昇格はブラウザーによって異なります。ここでは変数の宣言がプロモートされているだけで、else が削除されると純粋な関数スコープになります。

リーリー
いいねを押す +0
学习ing

あなたの IIFE で

リーリー

は関数宣言ではなく関数式です。 if が削除されていない場合、conosle.log(a)、a は未定義変数 a を表します。https://developer を参照してください。モジラ..

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート