ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript チームのプログラミング仕様

JavaScript チームのプログラミング仕様

黄舟
黄舟オリジナル
2016-12-20 15:33:051110ブラウズ

この仕様は、JavaScript 関数型プログラミング スタイルと、企業がコーディングに jQuery に大きく依存しているという現実に応じて策定されました。

eval、with、caller の使用は禁止されています (ecma262 v5 の厳密な要件を使用してください)。 eval は、暗号化時に機械生成することのみが許可されます。

変数を宣言する場合は必ずvarキーワードを付けてください。for(;;)ループなどを除き、連続宣言は原則として認められません。連続宣言の効率は個別宣言ほど高くなく、誤ってグローバル スコープに公開されやすいためです。

定数、すべて大文字。

変数名にはピンインは使用できず、英単語はキャメルケース形式で編成されます。

この問題による圧縮の失敗を防ぐために、可能な限り (基本的に、function、if、switch、try、while を除く) セミコロンを追加する必要があります。

カスタム クラスは UI ライブラリの構築にのみ使用できます。ビジネス コードではプライベート カスタム クラスは許可されません。

原則として、疑似オブジェクト (文字列、数値、ブール値) の使用は許可されていません。それらのリテラルを直接使用してください。

原則として、配列とオブジェクトのリテラル []、{} を直接使用することはできません。

製本不良を防ぐために慎重に取り扱い、ウィンドウを参照して使用することをお勧めします。

関数自体を呼び出したい場合、名前付き関数式の使用は禁止されています。詳しくは、「名前付き関数式公開」でググってください。ネイティブ オブジェクトのプロトタイプ、特に Object.prototype を拡張することは禁止されています。

ページ上の特定の要素、つまり次のコード スタイルにイベントをバインドすることは禁止されています:

var self = arguments.callee;

IE の条件付きコメントを使用することは禁止されており、圧縮されると消えます。

<a href="http://www.php1.cn/">简明现代魔法</a>

ブロック内で関数を宣言することは禁止されています。詳しくは、「名前付き関数式の公開」で検索してください。

var f = function () {
    /*@cc_on if (@_jscript) { return 2* @*/  3; /*@ } @*/
};

for-in ループはオブジェクトに対してのみ使用できます。

コンパイル時に行頭の空白文字は無視できないため、複数行の文字列を使用することは禁止されています。ほとんどのスクリプト エンジンはこの記述方法をサポートしていますが、これは ECMAScript ではありません。標準仕様の。

if (x) { //ng
  function foo() {}
}
  
if (x) {
  var foo = function() {}
}

技術的には、HTML コードの文字列結合は許可されていません。フロントエンド テンプレートまたはバックエンド テンプレートを使用してください。

文字列リテラルの場合は、" の代わりに ' を使用します。

コメントの場合は、JSDoc を使用します。

各行は長すぎてはなりません。コードを作成した後、IDE を使用してフォーマットしてください。

カスタム変数を追加する要素には、HTML5 の「data-*」メカニズムに簡単に接続するために、一律に「data-」接頭辞を使用します。

jQuery では、読み取りが非常に難しいため、複数行のチェーン操作を使用することは禁止されています。 ID セレクター、クラス セレクター、ラベル セレクターをさらに使用し、子要素構造の疑似クラスを使用し、疑似クラス (nth-child,: first,: eq,: gt) を配置する場合は注意してください

既存の jQuery で近くの要素ノードを検索します。オブジェクト、非推奨 マルチレベルの検索と関連するトラバーサル関数を使用します。

JavaScript プログラムは、圧縮とキャッシュを容易にするために、可能な限り外部 JS ファイルに配置する必要があります。

標準機能は、非標準機能よりも優れています (提供されている場合)。

var myString = &#39;A rather long string of English text, an error message \
                actually that just keeps going and going -- an error \
                message to make the Energizer bunny blush (right through \
                those Schwarzenegger shades)! Where was I? Oh yes, \
                you\&#39;ve got an error and all the extraneous whitespace is \
                just gravy.  Have a nice day.&#39;;

要素にイベントを追加する場合、考慮すべき順序は、デリゲート > ライブ > バインドです。

jQuery には次のイベントの問題があります。一般に、マウスホイール イベントなどのプロキシは、プラグインのみを使用できます。

今後使用されなくなるコード スニペットは残さないでください。他の人に警告するために jQuery には js_ を付ける必要があります。

JS コードは $$ 名前空間オブジェクト内に配置する必要があり、すべての関数の実行は main 関数から開始されます。バックグラウンドから JSON データを取得する形式は

$("XXXX").find("YYYY").find("ZZZZ"); //ng
$("XXXX").next() //或者nextUntil, nextAll, prev, prevAll, prevUntl, children, closest,
  
.siblings

に統一されています。リクエストと実行のコールバックを分離するために、dependBy 関数を使用します。これにより、複数レベルのネストされたコールバックが効果的に回避され、コードの理解しやすさが大幅に向上します。

今のところあまり思いつきません。何か良い提案があれば、ぜひ教えてください。

上記は JavaScript チームのプログラミング仕様の内容です。 PHP 中国語 Web サイト (www.php.cn) へ

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。