序
大部分針對Javascript最合理的方法歸納。
類型
? 原始類型:我們可以直接使用值。
ο string
ο number
ο boolean
ο null
ο undefined
SearchIndex
var foo = 1,
bar = foo;
bar = 9;
console.log(foo, bar); // => 1, 9
SearchIndex
? 複合類型:我們通過`引用`對值進行間接訪問。
ο object
ο array
ο function
SearchIndex
var foo = [1, 2],
bar = foo;
bar[0] = 9;
console.log(foo[0], bar[0]); // => 9, 9
SearchIndex
Objects
? 使用{}建立對象。
// bad
var item = new Object();
// good
var item = {};
? 不要使用保留字作為關鍵字。
SearchIndex
// bad
var superman = {
class: 'superhero',
default: { clark: 'kent' },
private: true
};
// good
var superman = {
klass: 'superhero',
defaults: { clark: 'kent' },
hidden: true
};
SearchIndex
Arrays
? 使用[]建立數組
// bad
var items = new Array();
// good
var items = [];
? 如果你不知道數組長度,使用Array#push。
SearchIndex
var someStack = [];
// bad
someStack[someStack.length] = 'abracadabra';
// good
someStack.push('abracadabra');
SearchIndex
? 當你需要複製數組的時候,請使用Array#slice。
SearchIndex
var len = items.length,
itemsCopy = [],
i;
// bad
for (i = 0; i < len; i++) {
itemsCopy[i] = items[i];
}
// good
itemsCopy = items.slice();
SearchIndex
Strings
? 對於字串,我們使用單引號''。
SearchIndex
// bad
var name = "Bob Parr";
// good
var name = 'Bob Parr';
// bad
var fullName = "Bob " + this.lastName;
// good
var fullName = 'Bob ' + this.lastName;
SearchIndex
? 超過80個字元的字串,我們使用串聯符號(\),讓字串多行顯示。
? 注意:如果過度使用帶串聯符號的字元可能會影響到效能。
SearchIndex
// bad
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.';
// bad
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.';
// good
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.';
SearchIndex