タグ付けされた質問 「jslint」

JSLintは、JSON、JSMin、ADSafeおよびYUIの一部を担当する有名な開発者であるDouglas Crockfordによって開発されたJavaScriptの「コード品質」ツールです。JSLintはCのlintと同じです。

27
JavaScriptで「strictを使用する」とは何をするのですか。その背後にある理由は何ですか?
StackаэтотвопросестьответынаStack Overflowнарусском:Чтозначит "use strict"? 最近、CrockfordのJSLintを介してJavaScriptコードの一部を実行したところ、次のエラーが発生しました。 1行目の文字の問題1:「厳密な使用」ステートメントがありません。 検索"use strict";してみると、JavaScriptコードに追加している人がいることに気づきました。ステートメントを追加すると、エラーが表示されなくなりました。残念ながら、Googleはこの文字列ステートメントの背後にある歴史の多くを明らかにしていません。確かに、ブラウザでJavaScriptがどのように解釈されるかと関係があるはずですが、その効果がどうなるかはわかりません。 それで"use strict";、何が何であり、それが何を意味し、それでもまだ関連性があるのでしょうか? 現在のブラウザのいずれかが"use strict";文字列に応答しますか、それとも将来使用するためですか?


18
JavaScriptで配列の長さを初期化する方法は?
JavaScriptの配列(w3schoolsやdevguruを含む)で読んだチュートリアルのほとんどは、var test = new Array(4);構文を使用して整数をArrayコンストラクターに渡すことにより、特定の長さで配列を初期化できることを示唆しています。 この構文をjsファイルで自由に使用した後、ファイルの1つをjsLintを介して実行しました。 エラー:1行目の文字22に問題があります: ')'が必要ですが、代わりに '4'が見つかりました。 var test = new Array(4); 1行目の文字23に問題があります:「;」が必要です 代わりに ')'を見た。 var test = new Array(4); 1行目の文字23の問題:識別子が必要ですが、代わりに「)」が表示されました。 jsLintの動作の説明を読んだ後、jsLintはnew Array()構文があまり好きではなく、[]配列を宣言するときに好むように見えます。 だから私はいくつかの質問があります: まず、なぜですか?new Array()代わりに構文を使用してリスクを冒していますか?注意すべきブラウザの非互換性はありますか? 次に、角括弧構文に切り替えると、配列を宣言してその長さをすべて1行に設定する方法はありますか、または次のようにする必要があります。 var test = []; test.length = 4;


8
JSLintまたはJSHint JavaScript検証を使用する必要がありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 11ヶ月前に閉鎖。 私は現在、JavaScriptをJSLintに対して検証し、進歩を遂げています。これは、特にJqueryライブラリーでの作業において、より良いJavaScriptを書くのに役立ちます。 私は今渡って来たJSHint、のフォークJSLint。 だから私は非常にJavaScriptが駆動されたWebアプリケーションのために不思議に思っています。 JSLintまたはJSHint? ここで検証メカニズムを決定し、前進させたいので、これをクライアント側の検証に使用します。 そしてjshintとjslintの違いは?単一のJavaScriptの例で説明してください。 リンク: jshint - http: //www.jshint.com/ jslint - http: //jslint.com/

16
JavaScriptでインクリメント(「++」)およびデクリメント(「-」)演算子を使用しないのはなぜですか?
jslintツールのヒントの 1つは次のとおりです。 ++および- ++(インクリメント)および-(デクリメント)演算子は、過度のトリッキーを助長することにより、不正なコードに寄与することが知られています。これらは、ウイルスやその他のセキュリティ上の脅威を可能にする点で、欠陥のあるアーキテクチャに次ぐ第2位です。これらの演算子の使用を禁止するplusplusオプションがあります。 のようなPHPの構成要素$foo[$bar++]が1つずれるエラーで簡単に発生する可能性があることを知っていますが、ループを制御するためのより良い方法をa while( a < 10 ) do { /* foo */ a++; }やよりも理解できませんでしたfor (var i=0; i<10; i++) { /* foo */ }。 「欠けているいくつかの類似した言語があるので、それらを強調しjslintである++」と「--」構文または異なって、それを処理し、または回避するため、他の理論的根拠があるが、「++」と「--私は失われるかもしれませんか」?

17
constを使用しているとJSHintが警告を出すのはなぜですか?
これは、constを使用するときに発生するエラーです。 <error line="2" column="1" severity="warning" message="'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" /> 私のコードは次のようになります: const Suites = { Spade: 1, Heart: 2, Diamond: 3, Club: 4 }; コードが正常に機能するのは、JSHintが毎回警告するだけです。

8
JSLintエラー「for forの本体はifステートメントでラップする必要があります」とはどういう意味ですか?
私のJavaScriptファイルでJSLintを使用しました。それはエラーを投げました: for( ind in evtListeners ) { 41行目の問題9文字目:プロトタイプから不要なプロパティをフィルター処理するには、forステートメントの本文をifステートメントでラップする必要があります。 これは何を意味するのでしょうか?
242 javascript  jslint 

10
`new Object()`とオブジェクトリテラル表記の違いは何ですか?
オブジェクトを作成するためのこのコンストラクタベースの構文の違いは何ですか? person = new Object() ...そしてこのリテラル構文: person = { property1 : "Hello" }; JSLintではオブジェクトリテラル表記の使用を推奨していますが、どちらも同じことを行うようです。 どっちがいいの?なぜ?

11
JavaScriptで長い正規表現を複数の行に分割する方法は?
JSLintルールに従って、各行の長さを80文字に保つために、JavaScriptコードで複数行に分割したい非常に長い正規表現があります。読書にはちょうど良いと思います。ここにパターンのサンプルがあります: var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

8
vimのクイックフィックス機能をどのように使用しますか?
私はかなり新しいVimユーザーですが、その学習曲線はかなり急です(少なくとも私にとっては)。JavaScriptLintエラーチェック用のこのvimスクリプトをインストールしました。バッファを保存すると、vimのクイックフィックスウィンドウにエラーが表示されます。 ただし、次に何をしたらよいかわかりません。すべてのエラーを「スクロール」するにはどうすればよいですか。クイックフィックス「ウィンドウ」を閉じるにはどうすればよいですか?コードを変更した後、エラーを確認するにはどうすればよいですか? vimクイックフィックスのドキュメントを見てきましたが、コマンドの数が膨大で、必要なものが見つからないようです。任意の助けいただければ幸いです。 副次的な質問:.htmlファイルにあるコードのJavaScriptエラーをjavascriptlintでチェックする方法はありますか? ありがとう!
125 vim  jslint 

3
即時関数呼び出し構文
JSLintオプションがあります。実際には、グッドパーツの1つです。「即時呼び出しの前後に括弧が必要です」。つまり、 (function () { // ... })(); 代わりに次のように書く必要があります (function () { // ... }()); 私の質問はこれです-なぜこの2番目のフォームがより良いと考えられるのか、誰かが説明できますか?より弾力性がありますか?エラーが発生しにくいですか?最初のフォームと比べてどのような利点がありますか? この質問をして以来、関数の値と関数の値を明確に視覚的に区別することの重要性を理解するようになりました。即時呼び出しの結果が代入式の右辺である場合を考えます。 var someVar = (function () { // ... }()); 最も外側の括弧は、構文的に不要であるが、左括弧が割り当てられている値であるアップフロント指示与えない機能自体ではなく、呼び出される関数の結果を。 これは、コンストラクター関数の大文字化に関するCrockfordのアドバイスに似ています。これは、ソースコードを見ている人に対する視覚的な手掛かりとして機能することを目的としています。

4
JavaScript関数の順序:なぜそれが重要なのですか?
元の質問: JSHintは、JavaScriptが、呼び出しよりもページのさらに下で定義されている関数を呼び出すと、文句を言います。ただし、私のページはゲーム用であり、すべてがダウンロードされるまで関数は呼び出されません。では、なぜ注文関数がコードに表示されるのですか? 編集:私は答えを見つけたかもしれないと思います。 http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting 中がうめき声を上げている。別の日に6千行のコードを並べ替える必要があるようです。JavaScriptによる学習曲線はそれほど急ではありませんが、非常に緩やかです。

4
JSHINTがこれが厳格な違反であると不平を言うのはなぜですか?
これは、このキーワードを使用してモジュールパターンを明らかにすることによる、厳密な違反の複製である可能性があると思います 私はこのコードを持っています: function gotoPage(s){ if(s<=this.d&&s>0){this.g=s; this.page((s-1)*this.p.size);} } function pageChange(event, sorter) { var dd = event.currentTarget; gotoPage.call(sorter, dd[dd.selectedIndex].value); } そして、JSHINT(JSLINT)は不満を言っています。「厳格違反」と書いてあります。強調表示された行: 私の使用Function.call()とインスタンスの参照は、どういうわけか不適切ですか? これは悪いスタイルと考えられますか?

2
JSLint:定義される前に使用されました
こんにちは、3つのJavaScriptファイルがあります。 jquery.js utility.js file1.js 私が持っているfile1.jsで jQuery.noConflict() jQuery(document).ready(function($) { // .... }); 定義される前に「jQuery」が使用されたというエラーが表示されます。そして、それが定義される前に「ドキュメント」が使用されました。 この警告を安全に取り除くにはどうすればよいですか。 私が行った場合 var document = document || {}; それから私のutility.jsで使用すると、IEではnullになり、firefoxではOKになります。 これに対する最善の解決策は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.