js的規範寫法ES5(本身之後按照這樣寫)

一、引號的使用,單引號' ' 優先(若是不是引號嵌套,不要使用雙引號) 

    正常狀況:console.log('hello there')        雙引號轉碼: $("<div class='box'>")api

 

二、空格的使用問題:(關鍵字後  符號後 排版 函數 賦值符號= )等

    a 函數的括號:function hello   (name)  {}    看 (參數)的 "括號外左右"(  ) 是有空格的,"括號內name左右" 是沒有空格的
    b 關鍵字後須要空格:if  (condition) { ... }  if和()之間須要有空格
    c 賦值符號 = 兩邊須要有空格 :var x  =  2  賦值符號 = 兩邊須要空格
    d 字符串拼接符號 + 兩邊須要空格:var message = 'hello, '  +  name  +  '!' 常量和變量之間的+號,左右兩邊須要空格
    e 逗號,前面不要留空格,後面留空格:var list = [ 1,   2,   3,  4]          function greet  ( name,  options)  { ... } 逗號前面不留後面留空格
 

三、同行不一樣行的問題:

    if () {} else {}中:  } else { 要在一行內
                                         if (XXX) {
                // 
              }  else  {
                //
 
              }
 

四、不寫沒有使用過的變量,若是定義了一個變量,後來一直沒有參與過運算,那麼不該該定義這個變量。

五、用=== 代替 ==,比較相等的時候,由於 == 會多一步數據轉換,可是當在 if (a!=undefiend) {}條件中, a!=undefiend同時有a!==undefiend和a!==null的雙重意思(null == undefined)

 

六、習慣給window的屬性和方法加上window,例外的幾個不用加window:document ,console ,navigator。  如:window.alert('hi')

 

七、同一個連寫方法很長要換行縮進問題,js中三元運算符,jq中的連綴等

    var location = env.development ? 'localhost' : 'www.api.com'  一行內寫法
    var location = env.development
      ? 'localhost'
      : 'www.api.com'
連綴寫法:

var leds = stage.selectAll('.led')
    .data(data)
  .enter().append('svg:svg')
    .class('led', true)
    .attr('width', (radius + margin) * 2)
  .append('svg:g')
    .attr('transform', 'translate(' + (radius + margin) + ',' + (radius + margin) + ')')
    .call(tron.led);數組

 

 八、註釋問題:要有與前一行要空一行       另外不要平白無故有大片的空白行           // 後面空一格

    var value  =  'hello world';app

                                                                                      空一行svg

    / /  這裏是註釋   函數

    console.log(value)this

 

  多行註釋:(這也能夠用到版權信息註釋spa

  /**
  * make() returns a new element
  * based on the passed in tag name
  *
  * @param <String> tag
  * @return <Element> element
  */orm

 
九、開頭問題:不要  (   [   `   開頭, 在開頭前要加上;號
    ;(function () {window.alert('ok')}())
    ;[1, 2, 3].forEach(bar)    
    ;`hello`.indexOf('o')
 

十、對象和數組的建立問題:var item = {}; 不用new Object()方式             數組:var arr = []

 

十一、超過80個字的字符串鏈接問題:

  
  var errorMessage = 'This is a super long error that ' +
  'was thrown because of Batman.'+
      'When you stop to think about ' +
  'how Batman had anything to do '+
     'with this, you would get nowhere ' +
  'fast.';
 
循環 或者 多行字符串 用join方法來構建
function inbox(messages) {
  items = []; 
  for(i = 0; i < length; i++) {
       items[i] = messages[i].message;
  } 
  return'<ul><li>'+ items.join() + ;
}
 

十二、對數字使用 parseInt 而且老是帶上類型轉換的基數.     var val = parseInt(inputValue, 10);

 

13,布爾值轉換 用Boolean() 或者 !!        var  hasAge = Boolean(age);     var hasAge = !!age;

 

1四、命名問題:

    a 命名私有屬性時前面加個下劃線 _      如:構造函數中 this._firstName = 'Panda';     var _firstName = firstName; 
    b jq變量命名加上個$,用來區分js變量
相關文章
相關標籤/搜索