問題タブ [jslint]
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 - 「varステートメントが多すぎる」というJSLintの背後にある理由は何ですか
JSLint(onevarフラグがオンになっている)は、次のJavaScriptコードにフラグを立てています:
これらのエラーを喜んで修正しますが、パフォーマンスのために行っているのか、それとも単なる悪い習慣であり、JavaScript コードにバグを導入する可能性が高いためかを知りたいです。onevar フラグの背後にある理由は何ですか?
私はvar キーワードの JSLint ドキュメントを見ましたが、同じ関数内の複数の var ステートメントがなぜ悪いのかについて具体的に述べていません。
これが例の試みです。var ステートメントを 1 つだけ持つことでコードがどのように役立つかを説明します。
javascript - JSLint はオフラインで使用できますか?
JSLintを使用したいのですが、フィルタリングされていないソース コードにアクセスできるツールには注意が必要です。オフライン バージョンはありますか、またはlint
JavaScript オフラインの「エラー チェック」を行う同様のツールは他にありますか?
編集: GUI を備えたもので、コマンド ライン インターフェイスの代わりに、エラーのスタイル付きリストを表示しますか?
javascript - 即時関数呼び出しの構文
実際、良い部分の 1 つであるJSLintオプションがあります。これは、"[requires] 即時呼び出しの周りに括弧が必要です"。
代わりに次のように書く必要があります
私の質問はこれです -- この 2 番目の形式の方が優れていると考えられる理由を説明できる人はいますか? それはより弾力性がありますか?エラーが起こりにくい?最初のフォームよりもどのような利点がありますか?
この質問をして以来、関数の値と関数の値を視覚的に明確に区別することの重要性を理解するようになりました。即時呼び出しの結果が代入式の右辺である場合を考えてみましょう。
最も外側の括弧は構文上不要ですが、左括弧は、割り当てられる値が関数自体ではなく、呼び出された関数の結果であることを前もって示します。
これは、コンストラクター関数の大文字化に関する Crockford のアドバイスに似ています。これは、ソース コードを見ている人に視覚的な手がかりとして役立つことを意図しています。
javascript - JavaScript でインクリメント ("++") およびデクリメント ("--") 演算子を避けるのはなぜですか?
ツールのヒントのjslint
1 つは次のとおりです。
++
--
(++
インクリメント) および(--
デクリメント) 演算子は、過度のトリッキーさを助長することにより、悪いコードに寄与することが知られています。それらは、ウイルスやその他のセキュリティの脅威を可能にするという点で、欠陥のあるアーキテクチャに次ぐものです。これらの演算子の使用を禁止する plusplus オプションがあります。
次のような PHP 構造体$foo[$bar++]
がオフバイワン エラーを引き起こしやすいことはわかっていますが、ループを制御するための次の方法よりも優れた方法を見つけることができませんでした。
また
" " と " "の構文がない、または異なる方法で処理するjslint
類似の言語がいくつかあるため、それらを強調表示しているのでしょうか。++
--
++
--
javascript - Notepad++ での JSLint の使用
他のテキスト エディターが拡張機能を使用してJSLintなどの構文チェッカーを許可しているのを見たことがありますが、これは Notepad++ で可能ですか?
javascript - javascriptの配列リテラル表記とは何ですか?いつ使用する必要がありますか?
JSLintは私にこのエラーを与えています:
11行目の33文字目の問題:配列リテラル表記[]を使用します。
配列リテラル表記とは何ですか?代わりにそれを使用する必要があるのはなぜですか?
ここに、new Array();
正常に動作するはずのことが示されています...何か足りないものはありますか?
formatting - JSLint インデント警告をオフにするには?
JSLintは次の形式の警告を多数生成することがわかりました。
JSLint オプションのドキュメントではindent
、インデントの各レベルのスペースの量を表す数値を認識するオプションについて説明しています。このオプションを使用すると、インデントのレベルごとに 2 つのスペースを使用するなどのことができます。JavaScript ファイルの先頭に次のように記述します。
わかりました。現在、JSLint は各レベルのインデントでどれだけインデントするかを認識していますが、JSLint は各行のインデント レベルを決定するためにハードコードされているようです。
JSLint が規定する方法とは異なる方法でコードをインデントしたいとします。JSLintオプションでこれを行うことはできますか? そうでない場合、少なくともインデントの警告をオフにすることはできますか? 私は試した:
しかし、それによってインデント警告が省略されることはありませんでした。JSLint エラーが発生しました。
javascript - JSLint は Javascript コーディングを改善しますか?
ダグラス・クロックフォード 言います:
JavaScript は雑多な言語ですが、その内部にはエレガントで優れた言語があります。JSLint は、より優れた言語でプログラミングし、ほとんどの問題を回避するのに役立ちます。
JSLint を定期的に使用するプログラマーは同じ意見を持っていますか?
javascript - JavaScriptで「usestrict」は何をしますか、そしてその背後にある理由は何ですか?
最近、JavaScriptコードの一部をCrockfordのJSLintで実行したところ、次のエラーが発生しました。
1行目の文字1の問題:「usestrict」ステートメントがありません。
検索をしてみると"use strict";
、JavaScriptコードに追加する人がいることに気づきました。ステートメントを追加すると、エラーが表示されなくなりました。残念ながら、Googleはこの文字列ステートメントの背後にある歴史の多くを明らかにしませんでした。確かに、JavaScriptがブラウザによってどのように解釈されるかと関係があるはずですが、その効果がどうなるかはわかりません。
それで、それは"use strict";
何についてであり、それは何を意味しますか、そしてそれはまだ関連していますか?
現在のブラウザのいずれかが文字列に応答し"use strict";
ますか、それとも将来使用するためですか?