問題タブ [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.
javascript - 関数宣言の代わりに関数式を使用するのに適した状況は何ですか?
関数はソース ファイルのどこにでも配置できるため、常に関数宣言を使用することを好みます。関数式を使用する場合、関数はソース ファイルの先頭に配置する必要があります。
関数宣言の代わりに関数式を使用する良い状況はありますか?
javascript - 巻き上げ機能の表現
私が知る限り、初期化ではなく、関数式の宣言部分のみが巻き上げられます。例えば:
したがって、「var myFunction;」巻き上げられますが、「関数 myFunction()...」ではありません。
私の質問に、私はグーグル認証機能を少しいじってみました:
10 行目「window.setTimeout(checkAuth...」で、この関数呼び出しの下に宣言されている checkAuth 関数を呼び出します。私の仮定では、「...checkAuth は関数ではありません / 未定義など」というエラーが表示されました。.. .」ですが、代わりにうまくいきました。誰かが私にこれを説明してもらえますか?
javascript - JS での関数の宣言: 名前付きおよび名前なしの式
Typeahead
最近、予測検索ボックスの解決策としてJS ライブラリを調べ始めました。しかし、それを実装するコードを見て、私は物事をもう少し深く調べ始め、javascript
.
これを達成するには、主に 3 つの方法があることを理解しています。
- 関数宣言
- 関数式
- 関数コンストラクト
それをよく見ると、function expressions
にたどり着きましたanonymous functions
。これらについての私の理解は、それらは実質的にfunction expression
名前のないものであるということですか?
私の質問は、名前付き関数式と無名関数の違いに関するものです。なぜ無名関数の使用を選択するのでしょうか? 匿名関数の利点 (ある場合) は何ですか?
以下を見ると (非常に単純な例であることはわかっています)、まったく同じことをしているように見えますか? 私はそれらを区別することができないようです。
余談ですが、これは私がこれを書くきっかけとなった質問でした: Typeahead.js substringMatcher 関数の説明
コードでは、作成者は無名関数を使用しています。とにかく、誰かが私のためにこれを片付けることができれば、本当に感謝しています。また、質問する前に、私は実際にこれをグーグルで検索し、違いを概説するさまざまなサイトに移動しましたが、ここでコミュニティに質問したいと思います.
javascript - ノードjsで関数式の場所が問題にならないのはなぜですか?
JavaScript では、関数式 ( などvar myFunc = function() {...}
) を使用する場合、他の変数宣言と同様に、使用する前に変数を定義する必要があります。たとえば、次の例は機能しません(結果は になりUncaught TypeError: myFunc is not a function
ます)。
ただし、ノードjsプロジェクトのroutes/index.jsファイルには、次のコードがあります(明らかに省略されています):
myFunc
変数は使用後に宣言されるので、これはエラーをスローするべきではありませんか?
javascript - JavaScript では、関数を呼び出すために関数式を括弧で囲む必要があるのはなぜですか
電話してみた
でも警告が出た
名前で呼んだら
何も起こりませんでしたが
、ブラケットを使用して呼び出すと、
どちらも画面にアラートを表示しました。なぜこれがすべて起こったのですか?
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.
javascript - 関数式の字句スコープ
JavaScriptエンジンの動作をコンパイル段階(レキシカルスコープ図全体を設定する段階)と実行段階(コンパイル段階でレキシカルスコープ設定を使ってコードを実行する段階)に分けると、関数式のスコープはいつ設定されるのでしょうか。コンパイル中ですか、それとも実行/解釈段階ですか?
また、関数式のスコープが設定されるたびに、親スコープは常にグローバル スコープになりますよね? (私はこれが発生するコードを見てきましたが、確認したいだけです)。
javascript - JavaScript の混乱における関数式
別の開発者が作成したこのコードを理解しようとしていますが、JavaScript の知識が不足しています。この関数は、サイトのヘッダー メニューを受け取り、それをモバイル スタイルのメニューに変換することになっています。
jQuery が として渡される理由を理解してい$
ます。CPCU
変数がどのようにそれ自体に返されるのか、またはなぜ として返されるのかわかりませんCPCU || {}
。CPCU
この状況で変数がどのように機能しているかを誰かが理解するのを手伝ってくれますか?
javascript - JSの縮小化で名前付き関数式の名前が削除されないようにするにはどうすればよいですか?
私はこの関数を、呼び出しの親呼び出し元と呼び出し元に渡された引数とともに、本当にひどくトレースする必要があるオブジェクトに持っています。
これは縮小されるまでうまく機能します:
縮小によりこれらの名前が削除され、出力は次のようになります。
関数の宣言と代入を作成したくありません。それらが大量にあるからです (このコードを 7,564 で継承しました...そして、関数式に名前を付ける正規表現サブルーチンを簡単に実行できます)。
ミニファイヤがこれらの関数名を削除しないようにするにはどうすればよいですか?
javascript - 関数式のシノンスパイ
関数式で sinon スパイを作成することは可能ですか? たとえば、このコードを見てください。
私が電話myMethod()
してスパイがいるにもかかわらず、私one - two - three
はまだ偽になります( と についてもone.called
同じです)two
three
ここで何が欠けていますか?
ありがとう!