JavaScript - 関数宣言セクションに関数があるのですが、よくわかりません。
我想大声告诉你
我想大声告诉你 2017-07-05 10:38:34
0
4
795

これは js 昇格の例です
関数宣言にコードがあることを確認してください

リーリー

このコードには無効な構文があると言われています。ほとんどのブラウザは 2 番目のステートメントを返しますが、Firefox は最初のステートメントを返します。これはなぜですか?
関数式に変更できるのであれば、なぜそうなるのでしょうか?

リーリー
我想大声告诉你
我想大声告诉你

全員に返信(4)
黄舟

最初のものは関数宣言ですが、関数は一般的に if-else で宣言されないためです

2 番目の方法は、変数に匿名関数を代入することです。プロモーションなどというものはありません。

いいねを押す +0
黄舟

関数 xxx(){} を直接記述すると、同じ名前の関数が 2 つある場合、先頭で var xxx を 2 回実行することと同じになるため、無効になります

いいねを押す +0
伊谢尔伦

宣言プレフィックスとは関係ありません。当時、JavaScript の仕様はまだ ES5 であり、ブラウザーにはまだブロックレベルのスコープ (ES2016+) が実装されておらず、スコープレベルは関数レベルのみでした。だからあなたはそれを書きました

リーリー

によって書かれました リーリー

本質的な違いはありません

いいねを押す +0
洪涛

jsは事前に宣言されています! ! !関数は、宣言時にスコープの先頭で直接言及されます。 if にはスコープがないため、2 つの関数は 1 つのスコープであり、2 番目の関数が最初の関数を置き換えます。 ! 2 番目のコードでは、最初に変数 Sayhi を宣言し、if 判定の後に Sayhi に値を代入します。

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