一、格式化
1、代碼縮進
4 個空格字符為一個縮進層級
2、語句結尾
每行語句結束必須使用分號結尾(“:”)
3、行的長度
每行語句不超過80個字符
4、換行
運算符后換行,第二行追加兩個縮進
callAFunction(document,element,window,"somes tring",trrue,
navigator)
5、空行
- 在方法之間
- 在方法中的局部變量和第一條語句之間
- 在多行或單行注釋之前
- 在方法內(nèi)的邏輯片段之間出去空行,提高可讀性
6、命名
a、變量 :
- 下劃線連接 "_"
- 第一個單詞為名詞
var user_name = "ding";
b、函數(shù):
- 使用小駝峰命名法(首字母小寫,后續(xù)每個單詞首字母都大寫)
- 第一個單詞為動詞(can、has、is、get、set等)
function getUserName () {}
c、構造函數(shù):
- 使用大駝峰命名法(首字母大寫,后續(xù)每個單詞首字母都大寫)
- 單詞為名詞
function Person() {}
d、常量:
- 下劃線連接 "_"
- 所有單詞均大寫
var MAX_COUNT = 10;
7、直接量
a、字符串:
- 使用雙引號: ""
- 拼接html使用單引號:''
var user_name = "ding";
var html = '<div class="demo"></div>'
b、數(shù)字:
- 完整書寫
例如: 1.0
var user_number = 1.0;
//而不是
var user_number = 1.;
例如: 0.1
var height = 0.1;
//而不是
var height = .1;
c、對象:
- 使用 {} 創(chuàng)建
var user_info = {
name : "ding",
age : 24
}
d、數(shù)組:
- 使用 [] 創(chuàng)建
var numbers = [1,2,3,4]
e、字符串:
- 使用"" 創(chuàng)建
var name = "ding";
二、注釋
1、單行注釋
- 兩個斜線
- 增加空行
var user = {}
//空行
//定義用戶信息
var user_info = {}
2、多行注釋
“/*”開始,“*/”結束
/*注釋*/
var name = "ding";
//空行
/*
*兩行注釋
*第二行
*/
var age = 25;
3、文檔注釋
“/**”開始,“**/”結束
/**
返回一個對象,包含其屬性
return object
**/
function getObject (name) {
var obj = {
name: name,
age: 25
}
return obj;
}
三、語句和表達式
1、花括號的對齊方式和塊語句間隔
if ( condition ) {
doSomething();
} else {
doSomethingElse();
}
2、switch語句
switch (condition)
case "one"
//代碼
break;
case "two"
//代碼
break;
default
//代碼或者無邏輯
3、with語句 : 禁止使用
4、for循環(huán)
var values = [1,2,3,4],
i,len;
for (i=0, len=values.length; i < len; i++) {
if ( i != 2 ) {
coonsole.log(i);
}
}
4、for-in循環(huán)
- 以為for-in 不僅遍歷對象的實例屬性,而且還遍歷從原型繼承來的屬性,
所以使用hasOwnProperty()過濾實例屬性- 禁止遍歷數(shù)組
var i;
//空行
for (i in obj) {
if ( Object.hasOwnProperty(i) ) {
console.log(i);
console.log(obj[i]);
}
}
5、變量和函數(shù)聲明
必須先定義后調(diào)用
var name = "ding";
console.log(name);
function getName () {}
getName();
6、立即調(diào)用的函數(shù)
var value = (function() {
return {
msg: "123"
}
}());
7、相等判斷
使用 "=== 與 !==" 替代 "== 與 !="
console.log(1 == "1"); // true
console.log(1 === "1"); // false
7、eval(),setTimeout(),setInterval()
a、eval() : 只有別無他法的時候才使用eval()
eval("alert('demo')");
b、setTimeout()與setInterval() : 禁止使用字符串參數(shù),要使用function
setTimeout(function() {
document.body.style.background = "red";
},50);
setInterval(function() {
document.title = (new Date());
},1000);