この仕様は、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 = '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\'ve got an error and all the extraneous whitespace is \ just gravy. Have a nice day.';
要素にイベントを追加する場合、考慮すべき順序は、デリゲート > ライブ > バインドです。
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 サイト (m.sbmmt.com) へ