問題タブ [function-expression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
50 参照

javascript - 関数宣言の代わりに関数式を使用するのに適した状況は何ですか?

関数はソース ファイルのどこにでも配置できるため、常に関数宣言を使用することを好みます。関数式を使用する場合、関数はソース ファイルの先頭に配置する必要があります。

関数宣言の代わりに関数式を使用する良い状況はありますか?

0 投票する
2 に答える
350 参照

javascript - 巻き上げ機能の表現

私が知る限り、初期化ではなく、関数式の宣言部分のみが巻き上げられます。例えば:

したがって、「var myFunction;」巻き上げられますが、「関数 myFunction()...」ではありません。

私の質問に、私はグーグル認証機能を少しいじってみました:

10 行目「window.setTimeout(checkAuth...」で、この関数呼び出しの下に宣言されている checkAuth 関数を呼び出します。私の仮定では、「...checkAuth は関数ではありません / 未定義など」というエラーが表示されました。.. .」ですが、代わりにうまくいきました。誰かが私にこれを説明してもらえますか?

0 投票する
2 に答える
48 参照

javascript - JS での関数の宣言: 名前付きおよび名前なしの式

Typeahead最近、予測検索ボックスの解決策としてJS ライブラリを調べ始めました。しかし、それを実装するコードを見て、私は物事をもう少し深く調べ始め、javascript.

これを達成するには、主に 3 つの方法があることを理解しています。

  1. 関数宣言
  2. 関数式
  3. 関数コンストラクト

それをよく見ると、function expressionsにたどり着きましたanonymous functions。これらについての私の理解は、それらは実質的にfunction expression名前のないものであるということですか?

私の質問は、名前付き関数式と無名関数の違いに関するものです。なぜ無名関数の使用を選択するのでしょうか? 匿名関数の利点 (ある場合) は何ですか?

以下を見ると (非常に単純な例であることはわかっています)、まったく同じことをしているように見えますか? 私はそれらを区別することができないようです。

余談ですが、これは私がこれを書くきっかけとなった質問でした: Typeahead.js substringMatcher 関数の説明

コードでは、作成者は無名関数を使用しています。とにかく、誰かが私のためにこれを片付けることができれば、本当に感謝しています。また、質問する前に、私は実際にこれをグーグルで検索し、違いを概説するさまざまなサイトに移動しましたが、ここでコミュニティに質問したいと思います.

0 投票する
1 に答える
107 参照

javascript - ノードjsで関数式の場所が問題にならないのはなぜですか?

JavaScript では、関数式 ( などvar myFunc = function() {...}) を使用する場合、他の変数宣言と同様に、使用するに変数を定義する必要があります。たとえば、次の例は機能しません(結果は になりUncaught TypeError: myFunc is not a functionます)。

ただし、ノードjsプロジェクトのroutes/index.jsファイルには、次のコードがあります(明らかに省略されています):

myFunc変数は使用後に宣言されるので、これはエラーをスローするべきではありませんか?

0 投票する
0 に答える
37 参照

javascript - JavaScript では、関数を呼び出すために関数式を括弧で囲む必要があるのはなぜですか

電話してみた

でも警告が出た


名前で呼んだら

何も起こりませんでしたが

、ブラケットを使用して呼び出すと、

どちらも画面にアラートを表示しました。なぜこれがすべて起こったのですか?

0 投票する
1 に答える
161 参照

javascript - Default Parameters in Function Expressions

Default parameters in javscript function declerations can be achieved with a simple assignment as follows:

But how can I have default parameters for function expressions, as the following does NOT work in chrome v47:

Any pointers would be helpful.

0 投票する
3 に答える
118 参照

javascript - 関数式の字句スコープ

JavaScriptエンジンの動作をコンパイル段階(レキシカルスコープ図全体を設定する段階)と実行段階(コンパイル段階でレキシカルスコープ設定を使ってコードを実行する段階)に分けると、関数式のスコープはいつ設定されるのでしょうか。コンパイル中ですか、それとも実行/解釈段階ですか?

また、関数式のスコープが設定されるたびに、親スコープは常にグローバル スコープになりますよね? (私はこれが発生するコードを見てきましたが、確認したいだけです)。

0 投票する
2 に答える
103 参照

javascript - JavaScript の混乱における関数式

別の開発者が作成したこのコードを理解しようとしていますが、JavaScript の知識が不足しています。この関数は、サイトのヘッダー メニューを受け取り、それをモバイル スタイルのメニューに変換することになっています。

jQuery が として渡される理由を理解してい$ます。CPCU変数がどのようにそれ自体に返されるのか、またはなぜ として返されるのかわかりませんCPCU || {}CPCUこの状況で変数がどのように機能しているかを誰かが理解するのを手伝ってくれますか?

0 投票する
1 に答える
3334 参照

javascript - JSの縮小化で名前付き関数式の名前が削除されないようにするにはどうすればよいですか?

私はこの関数を、呼び出しの親呼び出し元と呼び出し元に渡された引数とともに、本当にひどくトレースする必要があるオブジェクトに持っています。

これは縮小されるまでうまく機能します:

縮小によりこれらの名前が削除され、出力は次のようになります。

関数の宣言と代入を作成したくありません。それらが大量にあるからです (このコードを 7,564 で継承しました...そして、関数式に名前を付ける正規表現サブルーチンを簡単に実行できます)。

ミニファイヤがこれらの関数名を削除しないようにするにはどうすればよいですか?

0 投票する
1 に答える
878 参照

javascript - 関数式のシノンスパイ

関数式で sinon スパイを作成することは可能ですか? たとえば、このコードを見てください。

私が電話myMethod()してスパイがいるにもかかわらず、私one - two - threeはまだ偽になります( と についてもone.called同じです)twothree

ここで何が欠けていますか?

ありがとう!