1、使用 strict 模式
在一個作用域(包括函數作用域、全局作用域)中,可以使用
"use strict";
來開啟 strict 模式。
2、縮進
用 Tab 鍵進行代碼縮進,以節約代碼大小,使用4個空格的寬度來進行縮進(JSLint 建議)。
3、符號
1) 大括號
與語句放同一行,放于最后面;僅有一行語句,也使用大括號:
if (true) { //true} else { //false}while (true) { //alert(1);}2) 空格
在逗號、分號、冒號后加空格
在操作符前后加空格
在大括號開始符之前
在大括號結束符和 else、while 或 catch 之間
在 for 的各個部分
如:
var a = [1, 2, 3];var obj = { name: 'name', value: 'value'};for (var i = 0; i < 10; i++) {}function func(a, b, c) {}c = a + b;if (a && b || c) { //if} else { //else}try { //try} catch(err) { //catch}3) 所有語句結束后,使用 ; 號結束
4、命名
對象:使用駝峰式,如:MyClass
方法、變量:使用混合式,如:getName(), myName
常量:大寫加下劃線,如:MY_NAME
5、單一 var 模式
只使用一個 var 在函數頂部進行變量聲明,作用如下:
1) 提供一個單一的地址已查找到函數需要的所有局部變量
2) 防止出現變量在定義前就被使用的邏輯錯誤
3) 幫助牢記要聲明變量,盡可能少地使用全局變量
4) 更少的編碼
function func() { var a = 1, b = 2, sum = a + b, obj = { name: 'name', value: 'value' }, $btn = $('#btn'); //函數體}6、循環
1) for 循環
var i, arr = [];for (i = arr.length; i--;) { //arr[i];}注:
for (var i = 0; i < document.getElementsByName().length; i++) { //document.getElementsByName()[0];}這種方式每次對 i 進行長度比較的使用對會進行 document 的查詢,而通常 DOM 操作是非常耗時的。
2) while 循環
var arr = [], i = arr.length;while (i--) { //處理}3) for-in 循環
var i, hasOwn = Object.prototype.hasOwnProperty;for (i in man) { if (hasOwn.call(man, i)) { //過濾 console.log(i, ':', man[i]); }}7、switch 選擇
switch (num) {case 0: //do something break;case 1: //do something break;...default: //do default}建議使用:
var obj = { '0': function() { //do somethins }, '1': function() { // do somethis }, ...}if (obj.hasOwnProperty(num)) { obj[num]();} else { //do default}8、使用 parseInt() 的數值約定
1) 每次都具體指定進制參數:
var month = '09', day = '08';month = parseInt(month, 10); //不加進制參數便會轉換為八進制day = parseInt(day, 10);
2) 其他常用的將字符串轉換為數值的方法:
+'08';Number('08');9、字面量模式
不建議使用構造函數來定義:
// built in constructors (avoid)var o = new Object();var a = new Array();var re = new RegExp('[a-z]', 'g');var s = new String();var n = new Number();var b = new Boolean();throw new Error('message');建議使用更優的字面量模式:
// literals and primitives (prefer)var o = {};var a = [];var re = /[a-z]/g;var s = '';var n = 0;var b = false;throw { name: 'Error', message: 'message'}10、其他
1) 變量內的簡寫單詞如果在開頭則全小寫:xmlDocument,如果不在開頭則全大寫:loadXML
2) 變量必須是有意義的英文,禁止拼音
|
新聞熱點
疑難解答