* 變量在使用前必須定義,否則將導致變量污染全局環境
* 每個var只能聲明一個變量
* 變量必須 即用即聲明,不得在函數或其它形式的代碼塊起始位置統一聲明所有變量
```
// 變量聲明與使用的距離越遠,出現的跨度越大,代碼的閱讀與維護成本越高。
// 雖然JavaScript的變量是函數作用域,還是應該根據編程中的意圖,縮小變量出現的距離空間。
// good
function kv2List(source) {
var list = [];
for (var key in source) {
if (source.hasOwnProperty(key)) {
var item = {
k: key,
v: source[key]
};
list.push(item);
}
}
return list;
}
// bad
function kv2List(source) {
var list = [];
var key;
var item;
for (key in source) {
if (source.hasOwnProperty(key)) {
item = {
k: key,
v: source[key]
};
list.push(item);
}
}
return list;
}
```