国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

開發規范(四)JS規范

zhangyucha0 / 2547人閱讀

摘要:概述為提高團隊協作效率,規范文件管理,方便項目后期維護,提高代碼質量,特制訂此文檔,前端開發人員必須遵照本規范進行前臺頁面開發。

概述

為提高團隊協作效率,規范文件管理,方便項目后期維護,提高代碼質量,特制訂此文檔,前端開發人員必須遵照本規范進行前臺頁面開發。

基本規范

</>復制代碼

  1. sublime Text3請安裝jshint插件以檢查JS編寫錯誤;
    安裝教程:使用lint進行語法及風格校驗

異步加載文件命名

</>復制代碼

  1. require.ensure([],function(){
  2. //異步加載內容
  3. },"ensure/業務模塊名_頁面名_異步方法名_1")

引號
最外層統一使用單引號。

</>復制代碼

  1. // not good
  2. var x = "test";
  3. // good
  4. var y = "foo",
  5. z = "
    ";

空行
以下幾種情況需要空行:
變量聲明后(當變量聲明在代碼塊的最后一行時,則無需空行)
注釋前(當注釋在代碼塊的第一行時,則無需空行)
代碼塊后(在函數調用、數組、對象中則無需空行)
文件最后保留一個空行

</>復制代碼

  1. // need blank line after variable declaration
  2. var x = 1;
  3. // not need blank line when variable declaration is last expression in the current block
  4. if (x >= 1) {
  5. var y = x + 1;
  6. }
  7. var a = 2;
  8. // need blank line before line comment
  9. a++;
  10. function b() {
  11. // not need blank line when comment is first line of block
  12. return a;
  13. }
  14. // need blank line after blocks
  15. for (var i = 0; i < 2; i++) {
  16. if (true) {
  17. return false;
  18. }
  19. continue;
  20. }
  21. var obj = {
  22. foo: function() {
  23. return 1;
  24. },
  25. bar: function() {
  26. return 2;
  27. }
  28. };
  29. // not need blank line when in argument list, array, object
  30. func(
  31. 2,
  32. function() {
  33. a++;
  34. },
  35. 3
  36. );
  37. var foo = [
  38. 2,
  39. function() {
  40. a++;
  41. },
  42. 3
  43. ];
  44. var foo = {
  45. a: 2,
  46. b: function() {
  47. a++;
  48. },
  49. c: 3
  50. };

變量聲明
一個函數作用域中所有的變量聲明盡量提到函數首部,用一個var聲明,不允許出現兩個連續的var聲明。

</>復制代碼

  1. function doSomethingWithItems(items) {
  2. // use one var
  3. var value = 10,
  4. result = value + 10,
  5. i,
  6. len;
  7. for (i = 0, len = items.length; i < len; i++) {
  8. result += 10;
  9. }
  10. }

函數

無論是函數聲明還是函數表達式,"("前不要空格,但"{"前一定要有空格;
函數調用括號前不需要空格;
立即執行函數外必須包一層括號;
不要給inline function命名;
參數之間用", "分隔,注意逗號后有一個空格

</>復制代碼

  1. // no space before "(", but one space before"{"
  2. var doSomething = function(item) {
  3. // do something
  4. };
  5. function doSomething(item) {
  6. // do something
  7. }
  8. // not good
  9. doSomething (item);
  10. // good
  11. doSomething(item);
  12. // requires parentheses around immediately invoked function expressions
  13. (function() {
  14. return 1;
  15. })();
  16. // not good
  17. [1, 2].forEach(function x() {
  18. ...
  19. });
  20. // good
  21. [1, 2].forEach(function() {
  22. ...
  23. });
  24. // not good
  25. var a = [1, 2, function a() {
  26. ...
  27. }];
  28. // good
  29. var a = [1, 2, function() {
  30. ...
  31. }];
  32. // use ", " between function parameters
  33. var doSomething = function(a, b, c) {
  34. // do something
  35. };

數組、對象

對象屬性名不需要加引號;
對象以縮進的形式書寫,不要寫在一行;
數組、對象最后不要有逗號。

</>復制代碼

  1. // not good
  2. var a = {
  3. "b": 1
  4. };
  5. var a = {b: 1};
  6. var a = {
  7. b: 1,
  8. c: 2,
  9. };
  10. // good
  11. var a = {
  12. b: 1,
  13. c: 2
  14. };
變量命名規范

標準變量采用駝峰式命名
ID在變量名中全大寫
URL在變量名中全大寫
Android在變量名中大寫第一個字母
iOS在變量名中小寫第一個,大寫后兩個字母
常量全大寫,用下劃線連接
構造函數,大寫第一個字母
jquery對象必須以$開頭命名

</>復制代碼

  1. var thisIsMyName;
  2. var goodID;
  3. var reportURL;
  4. var AndroidVersion;
  5. var iOSVersion;
  6. var MAX_COUNT = 10;
  7. function Person(name) {
  8. this.name = name;
  9. }
  10. // not good
  11. var body = $("body");
  12. // good
  13. var $body = $("body");

前綴規范

</>復制代碼

  1. s:表示字符串。例如:sName,sHtml;
  2. n:表示數字。例如:nPage,nTotal;
  3. b:表示邏輯。例如:bChecked,bHasLogin;
  4. a:表示數組。例如:aList,aGroup;
  5. r:表示正則表達式。例如:rDomain,rEmail;
  6. f:表示函數。例如:fGetHtml,fInit;
  7. o:表示以上未涉及到的其他對象,例如:oButton,oDate;

例外情況:

</>復制代碼

  1. 1:作用域不大臨時變量可以簡寫,比如:str,num,bol,obj,fun,arr。
  2. 2:循環變量可以簡寫,比如:i,j,k等。
函數命名規范

統一使用動詞或者動詞[+名詞]形式,例如:fGetVersion(),fSubmitForm(),fInit();涉及返回邏輯值的函數可以使用is,has等表示邏輯的詞語代替動詞。

如果有內部函數,使用__f+動詞[+名詞]形式,內部函數必需在函數最后定義。

對象方法實現
對象方法命名使用 f+對象類名+動詞[+名詞]形式;例如 fAddressGetEmail

事件響應函數
某事件響應函數命名方式為觸發事件對象名+事件名或者模塊名+觸發事件對象名+事件名,例如:fDivClick(),fAddressSubmitButtonClick()

其它注意事項

所有命名最好使用英語表示。

所有變量名應該明確而必要,盡量避免不必要的容易混淆的縮寫。

netease.events.mouse.Handler,而不是 netease.events.mouse.MouseEventHandler。

對應的方法應該使用對應的動詞,例如:get/set, add/remove, create/destroy, start/stop, insert/delete, begin/end。

應該避免雙重否定意義的變量,例如:bIsNotError, bIsNotFound,不可取。

變量應該在最小的范圍內定義,并盡可能的保持最少的活動時間。

循環變量最好在循環中定義。例如for(var i=0,m=10;i++)

盡量避免復雜的條件語句,可以使用臨時的boolean變量代替。

一定要避免在條件中執行語句,例如:if((i=3)>2){},不可取。

不要在代碼中重復使用相同意義的數字,用一個變量代替

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/90822.html

相關文章

  • 【Node】前后端模塊規范與模塊加載原理

    摘要:例如指定一些依賴到模塊中實現規范的模塊化,感興趣的可以查看的文檔。 CommonJS 定義了 module、exports 和 require 模塊規范,Node.js 為了實現這個簡單的標準,從底層 C/C++ 內建模塊到 JavaScript 核心模塊,從路徑分析、文件定位到編譯執行,經歷了一系列復雜的過程。簡單的了解 Node 模塊的原理,有利于我們重新認識基于 Node 搭建的...

    jsyzchen 評論0 收藏0
  • js深入()萬臉懵圈的this指向

    摘要:作為一個菜雞的我而言,在之前講到過那么多的鏈式查找機制,比如說原型鏈,作用域鏈等等,想當然的把這個機制帶入到了指向上邊,結果就是這個指向指的我萬臉懵逼標題換字了,擔心被河蟹在經過漫長的通俗易懂的規范閱讀之后,分享一下我所認知的指向簡而言之, 作為一個js菜雞的我而言,在之前講到過那么多的js鏈式查找機制,比如說原型鏈,作用域鏈等等,想當然的把這個機制帶入到了this指向上邊,結果就是這...

    pcChao 評論0 收藏0
  • 關于JavaScript模塊規范之CommonJSAMDCMD

    摘要:所有依賴這個模塊的語句,都定義在一個回調函數中,等到加載完成之后,這個回調函數才會運行。也采用語句加載模塊,但是不同于,它要求兩個參數第一個參數,是一個數組,里面的成員就是要加載的模塊第二個參數,則是加載成功之后的回調函數。 本篇文章來自對文章《js模塊化編程之徹底弄懂CommonJS和AMD/CMD!》的總結,大部分摘自文章原話,本人只是為了學習方便做的筆記,之后有新的體會會及時補充...

    binaryTree 評論0 收藏0
  • JavaScript模塊化

    摘要:是中提供的模塊化編程的方案,是中新增。所以人們產生了這樣的需求,希望有支持兩種風格的通用模式,于是通用模塊規范誕生了。模塊化對模塊進行導出導入的 AMD、CMD、CommonJs、UMD是ES5中提供的模塊化編程的方案,import/export是ES6中新增。1.AMD-異步模塊定義AMD是RequireJS在推廣過程中對模塊定義的規范化產出,它是一個概念,RequireJS是對這個...

    wizChen 評論0 收藏0
  • 前端編碼規范

    摘要:前言首先,寫這篇代碼規范是為了我自己在以后的項目中方便引用,讓前端人員統一標準,方便在開發中保持代碼的一致性,代碼規范是在的編碼規范上的基礎上做的修改,下面只列舉出一些不一樣的地方,基本的規范參照編碼規范要求使用。 前言 首先,寫這篇代碼規范是為了我自己在以后的項目中方便引用,讓前端人員統一標準,方便在開發中保持代碼的一致性,代碼規范是在bootstrap的編碼規范上的基礎上做的修改,...

    nicercode 評論0 收藏0

發表評論

0條評論

zhangyucha0

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<