<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                #通用約定 --- ###縮進 使用soft tab(4個空格)。 ```javascript var x = 1, y = 1; if (x < y) { x += 10; } else { x += 1; } ``` ###單行長度 不要超過80,但如果編輯器開啟word wrap可以不考慮單行長度。 ###分號 以下幾種情況后需加分號: * 變量聲明 * 表達式 * return * throw * break * continue * do-while ```javascript /* var declaration */ var x = 1; /* expression statement */ x++; /* do-while */ do { x++; } while (x < 10); ``` ###空格 以下幾種情況不需要空格: * 對象的屬性名后 * 前綴一元運算符后 * 后綴一元運算符前 * 函數調用括號前 * 無論是函數聲明還是函數表達式,'('前不要空格 * 數組的'['后和']'前 * 對象的'{'后和'}'前 * 運算符'('后和')'前 以下幾種情況需要空格: * 二元運算符前后 * 三元運算符'?:'前后 * 代碼塊'{'前 * 下列關鍵字前:else, while, catch, finally * 下列關鍵字后:if, else, for, while, do, switch, case, try, catch, finally, with, return, typeof * 單行注釋'//'后(若單行注釋和代碼同行,則'//'前也需要),多行注釋'*'后 * 對象的屬性值前 * for循環,分號后留有一個空格,前置條件如果有多個,逗號后留一個空格 * 無論是函數聲明還是函數表達式,'{'前一定要有空格 * 函數的參數之間 代碼如下: ```javascript // not good var a = { b :1 }; // good var a = { b: 1 }; // not good ++ x; y ++; z = x?1:2; // good ++x; y++; z = x ? 1 : 2; // not good var a = [ 1, 2 ]; // good var a = [1, 2]; // not good var a = ( 1+2 )*3; // good var a = (1 + 2) * 3; // no space before '(', one space before '{', one space between function parameters var doSomething = function(a, b, c) { // do something }; // no space before '(' doSomething(item); // not good for(i=0;i<6;i++){ x++; } // good for (i = 0; i < 6; i++) { x++; } ``` ###空行 以下幾種情況需要空行: * 變量聲明后(當變量聲明在代碼塊的最后一行時,則無需空行) * 注釋前(當注釋在代碼塊的第一行時,則無需空行) * 代碼塊后(在函數調用、數組、對象中則無需空行) * 文件最后保留一個空行 ```javascript // need blank line after variable declaration var x = 1; // not need blank line when variable declaration is last expression in the current block if (x >= 1) { var y = x + 1; } var a = 2; // need blank line before line comment a++; function b() { // not need blank line when comment is first line of block return a; } // need blank line after blocks for (var i = 0; i < 2; i++) { if (true) { return false; } continue; } var obj = { foo: function() { return 1; }, bar: function() { return 2; } }; // not need blank line when in argument list, array, object func( 2, function() { a++; }, 3 ); var foo = [ 2, function() { a++; }, 3 ]; var foo = { a: 2, b: function() { a++; }, c: 3 }; ``` ###換行 換行的地方,行末必須有','或者運算符; 以下幾種情況不需要換行: * 下列關鍵字后:else, catch, finally * 代碼塊'{'前 以下幾種情況需要換行: * 代碼塊'{'后和'}'前 * 變量賦值后 ```javascript // not good var a = { b: 1 , c: 2 }; x = y ? 1 : 2; // good var a = { b: 1, c: 2 }; x = y ? 1 : 2; // no need line break with 'else', 'catch', 'finally' if (condition) { ... } else { ... } try { ... } catch (e) { ... } finally { ... } // not good function test() { ... } // good function test() { ... } // not good var a, foo = 7, b, c, bar = 8; // good var a, foo = 7, b, c, bar = 8; ``` ###單行注釋 雙斜線后,必須跟一個空格; 縮進與下一行代碼保持一致; 可位于一個代碼行的末尾,與代碼間隔一個空格。 ```javascript if (condition) { // if you made it here, then all security checks passed allowed(); } var zhangsan = 'zhangsan'; // one space after code ``` ###多行注釋 最少三行, '*'后跟一個空格,具體參照右邊的寫法; 建議在以下情況下使用: * 難于理解的代碼段 * 可能存在錯誤的代碼段 * 瀏覽器特殊的HACK代碼 * 業務邏輯強相關的代碼 ```javascript /* * one space after '*' */ var x = 1; ``` ###文檔注釋 各類標簽@param, @method等請參考[usejsdoc](http://usejsdoc.org/)和[JSDoc Guide](http://yuri4ever.github.io/jsdoc/); 建議在以下情況下使用: * 所有常量 * 所有函數 * 所有類 ```javascript /** * @func * @desc 一個帶參數的函數 * @param {string} a - 參數a * @param {number} b=1 - 參數b默認值為1 * @param {string} c=1 - 參數c有兩種支持的取值</br>1—表示x</br>2—表示xx * @param {object} d - 參數d為一個對象 * @param {string} d.e - 參數d的e屬性 * @param {string} d.f - 參數d的f屬性 * @param {object[]} g - 參數g為一個對象數組 * @param {string} g.h - 參數g數組中一項的h屬性 * @param {string} g.i - 參數g數組中一項的i屬性 * @param {string} [j] - 參數j是一個可選參數 */ function foo(a, b, c, d, g, j) { ... } ``` ###引號 最外層統一使用單引號。 ```javascript // not good var x = "test"; // good var y = 'foo', z = '<div id="test"></div>'; ``` ###變量命名 * 標準變量采用駝峰式命名(除了對象的屬性外,主要是考慮到cgi返回的數據) * 'ID'在變量名中全大寫 * 'URL'在變量名中全大寫 * 'Android'在變量名中大寫第一個字母 * 'iOS'在變量名中小寫第一個,大寫后兩個字母 * 常量全大寫,用下劃線連接 * 構造函數,大寫第一個字母 * jquery對象必須以'$'開頭命名 ```javascript var thisIsMyName; var goodID; var reportURL; var AndroidVersion; var iOSVersion; var MAX_COUNT = 10; function Person(name) { this.name = name; } // not good var body = $('body'); // good var $body = $('body'); ``` ###變量聲明 一個函數作用域中所有的變量聲明盡量提到函數首部,用一個var聲明,不允許出現兩個連續的var聲明。 ```javascript function doSomethingWithItems(items) { // use one var var value = 10, result = value + 10, i, len; for (i = 0, len = items.length; i < len; i++) { result += 10; } } ``` ###函數 * 無論是函數聲明還是函數表達式,'('前不要空格,但'{'前一定要有空格; * 函數調用括號前不需要空格; * 立即執行函數外必須包一層括號; * 不要給inline function命名; * 參數之間用', '分隔,注意逗號后有一個空格。 ```javascript // no space before '(', but one space before'{' var doSomething = function(item) { // do something }; function doSomething(item) { // do something } // not good doSomething (item); // good doSomething(item); // requires parentheses around immediately invoked function expressions (function() { return 1; })(); // not good [1, 2].forEach(function x() { ... }); // good [1, 2].forEach(function() { ... }); // not good var a = [1, 2, function a() { ... }]; // good var a = [1, 2, function() { ... }]; // use ', ' between function parameters var doSomething = function(a, b, c) { // do something }; ``` ###數組、對象 * 對象屬性名不需要加引號; * 對象以縮進的形式書寫,不要寫在一行; * 數組、對象最后不要有逗號。 ```javascript // not good var a = { 'b': 1 }; var a = {b: 1}; var a = { b: 1, c: 2, }; // good var a = { b: 1, c: 2 }; ``` ###括號 下列關鍵字后必須有大括號(即使代碼塊的內容只有一行):<font color=red>```if```</font>, <font color=red>```else```</font>, <font color=red>```for```</font>, <font color=red>```while```</font>, <font color=red>```do```</font>, <font color=red>```switch```</font>, <font color=red>```try```</font>, <font color=red>```catch```</font>, <font color=red>```finally```</font>, <font color=red>```with```</font>。 ###雜項 不要混用tab和space(統一使用4個空格); 不要在一處使用多個tab或space; 換行符統一用'LF'; 對上下文this的引用只能使用'_this', 'that', 'self'其中一個來命名; 行尾不要有空白字符; switch的falling through和no default的情況一定要有注釋特別說明; 不允許有空的代碼塊。 ~~~javascript // not good var a = 1; function Person() { // not good var me = this; // good var _this = this; // good var that = this; // good var self = this; } // good switch (condition) { case 1: case 2: ... break; case 3: ... // why fall through case 4 ... break; // why no default } // not good with empty block if (condition) { } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看