Javascript筆記(五)のコード規範
18365 ワード
前書き:なぜコード仕様が必要ですか?
コード規範の意味
ECMAScriptの中で、すべてのコードは語句で構成されています.ステートメントは、実行中のフロー、限定および約束を示し、形式的には、単一の行のステートメントまたはペアの大拡張された
JavaScriptコード規範検証ツール
1、種類紹介
JavaScriptの中には以下のようなコード規範検証ツールがあります. JSLint:古くて、配置不可、拡張不可、多くの特性のチェックを無効にしてはいけません. JSHint:設定可能なJSLintのバージョン. JSCS:コード・スタイルチェックは、潜在的なバグやエラーではなく、コード・フォーマットに関する問題のみをキャプチャし、ESLINEと をマージしました. ESLINE:拡張しやすく、カスタムルールができ、プラグイン形式でより多くのルールをインストールできます. 2、JSLint——JavaScriptの文法規範を検出する
2.1、JSLint概要と設置
先端JavaScriptの中にJSLintといういいツールがあります.コードの規範化、圧縮JS、CSSなどを検出できます.JavaScript検証ツールでもあります.位置を間違えて、基本的なマニュアルが守られていることを確認する時にとても役に立ちます.
NodeJSをインストールすれば、以下のようにJSLintをインストールすることができます.コードに対するルールは厳しいです. 設定可能なオプションは少ない です.
2.2、JSLint仕様内容は、文の末尾としてセミコロンを使用しなければなりません. 関数は、 は、 が現れます.タブとスペースの混用はできません. 行末に余分なスペースがあってはいけません. 文字列は、ダブルクォーテーション を使用します.変数は繰り返し定義できません. は、 を使用する. を削除してください.は、 が必要です.はできるだけ使わないでください. 3、JSHint仕様
3.1、JSHint概要
JSLintは文法的に厳しいので、そんなに厳しくする必要はないと思っている人が多いです.JSLintをベースに、新しいコードチェックツールJSHintを構築してきました.
JSHintの長所は以下の通りです.構成可能規則 コミュニティの支持度は高いです. カスタム結果テーブル 3.2、JSHintの配置区分 Engforcing(強調):これらの属性がtrueに設定されている場合、JSHintはコードを厳格にチェックします.例えば、厳格なモードに使うかどうか、変数猫峰式の命名、for-innサイクルにはhashOwnPropertyなどが必要です. Relaxing(緩和):これらの属性がtrueに設定されていると、JSHintはルールの定義を容認するなど、セミコロンを使用するかどうか、次世代ES文法をサポートするかどうかなどのような場合があります. Evironments(環境):これらの属性がtrueに設定されている場合、コードが置かれている環境を表します. globals(グローバル変数):カスタムグローバル変数 3.3、強化
1、ESLINEの哲学 ESLINEでは、すべて挿入可能であり、ルールの間で独立しています. 各ルールがゼロでないとオン、ゼロはオフとなります. ESLintは任意のコードスタイルに傾いていません.デフォルトではすべての設定をオフにします.バンドルされた規則は全部普遍的な です.
2、どうやって使うか直接npmを使ってインストールして を使います.
検出ファイルは以下のように使います. glp-eslint方式1を使用して、glp-eslint をインストールします.
ESLintの配置は全部
1、指定環境
1.1、ES 6構文とJSXをサポートするように言語を指定します.
2、グローバル変数を指定する
3、指定ルール
3.1、ルールの値
値
意味
0
ルールを閉じる
1
失敗しました.警告します.
2
失敗に戻ります.
ルールがあります.値以外に、もっと多く注文できます.
3.2、プラグインを設定したい自分のルール
4.1、配置が整いましたら、どのように方法を使いますか?一:コマンドラインを使います.
4.2、配置ファイルの積層と等級は、ルートフォルダの
4.3、eslintはどうやって
デフォルトでは、eslintはすべての親フォルダの中に配置ファイルを探して、ルートディレクトリを見つけるまでです.eslintが構成ファイルを探し続けないことを望むなら、このように構成される:
値
意味
0
行の中に、コメントで書いてあります.
1
コマンドラインの
2
ファイル
4.5、構成ファイルは
4.6、どのように構成に注釈を書くか
4.7、検査を無視したファイルとディレクトリはルートディレクトリの下に書いてあります.
4.8、具体的なルールについて、ここでは多くの関連参考資料を以下のように説明しました.https://eslint.org/docs/user-guide/getting-started https://github.com/adametry/gulp-eslint
コード規範の意味
ECMAScriptの中で、すべてのコードは語句で構成されています.ステートメントは、実行中のフロー、限定および約束を示し、形式的には、単一の行のステートメントまたはペアの大拡張された
{}
の複合文とすることができ、構文記述では、複合文全体は、単一の行のステートメントとして処理することができる.JavaScriptコード規範検証ツール
1、種類紹介
JavaScriptの中には以下のようなコード規範検証ツールがあります.
2.1、JSLint概要と設置
先端JavaScriptの中にJSLintといういいツールがあります.コードの規範化、圧縮JS、CSSなどを検出できます.JavaScript検証ツールでもあります.位置を間違えて、基本的なマニュアルが守られていることを確認する時にとても役に立ちます.
NodeJSをインストールすれば、以下のようにJSLintをインストールすることができます.
npm install -g jslint
JSLintを使うjslint spa.js
または、GrauntまたはGulpを使用してコマンドラインで直接運転し、package.json
に追加します."devDependencies": {
"gulp-jslint": "*",
"gulp": "^3.6.2"
}
JSLintタスクを定義するvar
jslint = require('gulp-jslint'),
gulp = require('gulp');
gulp.task('jslint', function () {
return gulp.src([
'./controllers/*.js',
'./models/*.js',
'./*.js'
]).pipe(jslint({
node: true,
nomen: true,
sloppy: true,
plusplus: true,
unparam: true,
stupid: true
}));
});
gulp.task('default', ['jslint']);
JSLintの特徴2.2、JSLint仕様内容
"use strict"
の厳密なモードを使用して定義されなければならず、)
と{
の間にはスペースが必要であり、関数の宣言は、ifのようなブロックには置けず、外部関数の上部に置く必要がある.-
、+
、=
、*
、\
の後ろにスペース===
の代わりに==
debugger
文case
またはbreak
の前にbreak
eval()
3.1、JSHint概要
JSLintは文法的に厳しいので、そんなに厳しくする必要はないと思っている人が多いです.JSLintをベースに、新しいコードチェックツールJSHintを構築してきました.
JSHintの長所は以下の通りです.
bitwise
camelcase (camelCase) (UPPER_CASE)
curly {}
eqeqeq === !== == !=
es3 ECMAScript 3
es5 ECMAScript 5
forin for in Object.prototype.hasOwnProperty()
freeze ( Array, Date)
immed (function() {}()); (function() {})();
indent
latedef
newcap
noarg arguments.caller arguments.callee
noempty
nonew
plusplus ++ –-
quotemark
undef
unused
strict ES5
trailing
maxparams
maxdepth {}
maxstatement
maxcomplexity
maxlen
3.4、たるみasi
boss if,for,while
debug debugger
eqnull ==null
esnext ECMAScript 6
evil eval
expr
funcscope
globalstrict
iterator __iterator__
lastsemic
laxbreak
laxcomma
loopfunc
maxerr JSHint
multistr
notypeof typeof
proto proto
smarttabs tab space
shadow shadow
sub person[‘name’]
supernew new function() {…} new Object
validthis this
noyield yield
3.5、環境browser Web Browser (window, document, etc)
browserify Browserify (node.js code in the browser)
jquery jQuery
node Node.js
qunit QUnit
typed Globals for typed array constructions
worker Web Workers
wsh Windows Scripting Host
3.6、グローバル変数globals: {
jQuery: true,
console: true,
module: true
}
4、ESLint——ECMAScript文法規範を検出する(重点把握)1、ESLINEの哲学
2、どうやって使うか
npm install -g eslint
eslint -init
実行後、いくつかの質問をして、一つを作成します.eslintrcファイルの問題は以下の通りです.what style of indentation do you use?Spaces what quot;tes do you use for strigs?Double What line endings doyou use?Unix Dou require semicolons?No Aree you using ECMAScript 6 feature?Yes Wree will your code run?Node?Browser検出ファイルは以下のように使います.
eslint xxx.js
npm install gulp-eslint
2、gulpfile.jsでeslintを呼び出します.const {src, task} = require('gulp');
const eslint = require('gulp-eslint');
task('default', () => {
return src(['scripts/*.js'])
// eslint() attaches the lint output to the "eslint" property
// of the file object so it can be used by other modules.
.pipe(eslint())
// eslint.format() outputs the lint results to the console.
// Alternatively use eslint.formatEach() (see Docs).
.pipe(eslint.format())
// To have the process exit with an error code (1) on
// lint error, return the stream and pipe to failAfterError last.
.pipe(eslint.failAfterError());
});
//
gulp.src(['**/*.js','!node_modules/**'])
.pipe(eslint({
rules: {
'my-custom-rule': 1,
'strict': 2
},
globals: [
'jQuery',
'$'
],
envs: [
'browser'
]
}))
.pipe(eslint.formatEach('compact', process.stderr));
ESListの配置ESLintの配置は全部
.eslintrc
ファイルに書いてあります.1、指定環境
1.1、ES 6構文とJSXをサポートするように言語を指定します.
ecmaFeatures
属性のすべての構文解析器はparser
包で、デフォルトの使用はnpm
です.公式の推奨はEspree
、Esprima
、Esprima-FB
、Babel-ESLint
、Babel-ESLint
.env:{es6:true}
は自動的にES 6をサポートしてもいいです.Babel-ESLint
を専用に書く必要はありません.ecmaFeatures
はコードを先にES 6に変更しますので、ES 5にないすべての属性は依然としてenv
属性に1.3を設定してください.指定環境は.eslintrc
属性に書いてもいいし、必要なすべての特定ファイルに書いてもいいです.1.4、カスタムプラグインplugin
ファイルの中の.eslintrc
属性に書いてあります.第三者プラグインを使用する前にインストールしてください.標準プラグインはインストールする必要がありません.2、グローバル変数を指定する
global
ファイルに書かれている.eslintrc
属性のうち、no-undefによってエラーが発生しないようにします.3、指定ルール
3.1、ルールの値
値
意味
0
ルールを閉じる
1
失敗しました.警告します.
2
失敗に戻ります.
ルールがあります.値以外に、もっと多く注文できます.
3.2、プラグインを設定したい自分のルール
{
"plugins": [
"plugin1"
],
"rules": {
"eqeqeq": 0,
"curly": 2,
"quotes": [2, "double"],
"plugin1/rule1": 2
}
}
4、プロファイルについて4.1、配置が整いましたら、どのように方法を使いますか?一:コマンドラインを使います.
eslint -c myconfig.json mytest.js
方法2:package,json
と.eslintrc
ファイルを通して、lintが必要なフォルダの中で、eslintはこの二つのファイルを探して、それから上級ディレクトリに等級をつけて、プロジェクトのルートディレクトリまで探します.4.2、配置ファイルの積層と等級は、ルートフォルダの
package.json
またはeslintConfig
の中の.eslintrc
を利用して、内部の.eslintrc
と検査されたフォルダの近い構成を利用すると、優先度が高い.同レベルではpackage.json
の優先度が.eslintrc
より高い.4.3、eslintはどうやって
"root": true
を見つけますか?デフォルトでは、eslintはすべての親フォルダの中に配置ファイルを探して、ルートディレクトリを見つけるまでです.eslintが構成ファイルを探し続けないことを望むなら、このように構成される:
.eslintrc
4.4、プロファイルの優先度値
意味
0
行の中に、コメントで書いてあります.
1
コマンドラインの
2
ファイル
4.5、構成ファイルは
extends
ファイルのextends
属性に拡張して書くことができ、同様のモジュール化の効果を達成することができる.たとえば、いくつかの基礎設定は拡張ファイルに書いてもいいです..eslintrc
の値は、複数の.eslintrc
ファイルパスであっても良い.npm
をeslint
パケットにしても良いし、友達に拡張ファイルを共有してもいいです.拡張機能を書き込みます.4.6、どのように構成に注釈を書くか
package.json
は注釈を書けません.4.7、検査を無視したファイルとディレクトリはルートディレクトリの下に書いてあります.
.eslintrc
ファイルの中で、フォーマットは純粋なテキストのESLINEのために実行する前に、まず.eslintignore
を確認します.最初のグローバル変数だけを見て.eslintignore
とマッチします.4.8、具体的なルールについて、ここでは多くの関連参考資料を以下のように説明しました.https://eslint.org/docs/user-guide/getting-started https://github.com/adametry/gulp-eslint