前端編碼風格規(guī)范(3)—— JavaScript 規(guī)范
其他三個寫的也挺好的,不過html和css我已經(jīng)參照了其他的。
防污染與IIFE
(function($, w, d){
'use strict';
$(function() {
w.alert(d.querySelectorAll('div').length);
});
}(jQuery, window, document));
總是使用
var
來聲明變量
所有的變量以及方法,應當定義在 function 內(nèi)的首行。只用一個 var 關(guān)鍵字聲明,多個變量用逗號隔開。
把賦值盡量寫在變量申明中。
總是使用 === 精確的比較操作符
真假判斷
false:false, 0, undefined, null, NaN, ''
true: true, 1, {}, [], '0'
邏輯操作符 || 和 && 也可被用來返回布爾值
(function(log){
'use strict';
function multiply(a, b) {
//給變量賦值
a = a || 1;
b = b || 1;
log('Result ' + a * b);
}
multiply(); // Result 1
multiply(10); // Result 10
multiply(3, NaN); // Result 3
multiply(9, 5); // Result 45
}(window.console.log));
總是使用分號
分號需要用在表達式的結(jié)尾,而并非函數(shù)聲明的結(jié)尾
var foo = function() {
return true;
}; // semicolon here.
function foo() {
return true;
} // no semicolon here.
不能在語句塊內(nèi)的函數(shù)聲明
// 不推薦
if (x) {
function foo() {}
}
// 推薦
if (x) {
var foo = function() {};
}
如何自定義異常?
拋出對象
if(name === undefined) {
throw {
name: 'System Error',
message: 'A name should always be specified!'
}
}
閉包有什么用?關(guān)于閉包如何工作的合理解釋。
不在循環(huán)中創(chuàng)建函數(shù)或閉包
只在構(gòu)造函數(shù)和對象的方法中 使用this
不要使用switch
用數(shù)組和對象字面量
禁止修改內(nèi)建對象的原型鏈
圓括號,不要用在一元操作符上,例如 delete, typeof 和 void,或在關(guān)鍵字之后,例如 return, throw, case, new 等。
字符串統(tǒng)一使用單引號(‘)
js語言精粹
縮進2個空格
if和 ( 之間放一個空格
函數(shù)調(diào)用時,才使 ( 和前面的符號相連
除了 . 和 [ 的所有中置運算符兩邊都放空格
每個逗號和冒號后都使用一個空格
每行最多放一個語句
如果一行放不下,會在一個冒號或二元運算符后拆開它
以行注釋為主;塊注釋用于正式的文檔記錄和注釋。