- 推薦使用===和!==
不推薦==和!=[之間的轉(zhuǎn)化會很復(fù)雜] - with[不推薦]
with(obj) {
a = b;
c = d;
}
先判斷obj.b和obj.d是否存在,如果不存在的話,再判斷全局變量b和d是否存在[可能會出意外]
- eval
有性能和安全性的問題蚣抗,并且使得代碼更難閱讀。
eval("myValue = myObject." + myKey + ";");
可以直接寫成
myValue = myObject[myKey];
至于ajax操作返回的json字符串,可以使用官方網(wǎng)站提供的解析器json_parse.js運行扇售。
- continue
適當(dāng)?shù)拿羁梢员苊膺@種寫法 - 位運算符
運算符針對的是整數(shù),所以對Javascript完全無用嚣艇,因為Javascript內(nèi)部承冰,所有數(shù)字都保存為雙精度浮點數(shù) - function語句
function foo() {
}
var foo = function () {
}
建議定義函數(shù)時,全部采用后一種寫法食零。
- 基本數(shù)據(jù)類型的包裝對象
new String("Hello World");
new Number(2000);
new Boolean(false);
這樣寫完全沒有必要困乒,而且非常費解,因此建議不要使用贰谣。
new Object ×
new Array ×
{} √
[] √
new Object和new Array也不建議使用娜搂,可以用{}和[]代替。
- new對象
//傳統(tǒng)寫法
var Cat = function (name) {
this.name = name;
this.saying = 'meow' ;
}
var myCat = new Cat('mimi');
//推薦寫法
Object.beget = function (o) {
var F = function (o) {};
F.prototype = o ;
return new F;
};
var Cat = {
name:'',
saying:'meow'
};
var myCat = Object.beget(Cat);
myCat.name = 'mimi';