1

関数が順不同で定義されている場合、Jslint はエラーを呼び出します。

確かにjslintは厳しいですが、関数を整理するメリットはあるのでしょうか。

つまり、呼び出される前にそれらを定義するということです。

4

3 に答える 3

2

関数定義 (およびvarステートメント) は、クロージャの先頭に持ち上げられます。つまり、コードは、記述した順序とは異なる順序で実行されています。

現在、行末の を省略することほど「間違っている」ことはありませんが、jsLint は人間;がコードを読みやすいかどうかをテストするように設計されています。飛び回ることは人間が判読できないため、無効と見なされます。

于 2012-08-20T21:43:47.543 に答える
1

関数を呼び出す前に関数を定義すると、コードは 1 つのパス コンパイラで処理できます。それ以外の場合は、マルチパス コンパイラが必要です (これは一般的に低速です)。

1 パスの JavaScript コンパイラがいくつかあるかもしれません (ただし、私は知りません)。

コードがワンパスコンパイラで正常に実行できることを確認したいので、JSLintはそのエラーを表示するといつも思います

于 2012-08-20T21:55:46.137 に答える
1

依存します。

これは成功します:

var x = y();

function y() { return 9; }

しかし、これは失敗します:

var x = y();

var y = function() { return 9; };

最初のスクリプトが解釈されるとfunction y、その関数がそのスコープ全体 (この例ではグローバル スコープ) で使用可能になります。

一方、2 番目の例では、関数が に割り当てられていyます。他の変数と同様に、順序が重要です。

于 2012-08-20T21:47:35.837 に答える