例如,如下代码是不推荐的
var name
if (name = location.hash) {}
而推荐的是这种写法
var name = location.hash;
if (name) {}
请问为什么推荐的是这种写法?
因为我们一般是这样写的if (name == location.hash) {}
用来判断是否相等
弱类型语言用==的时候用了=,你就哭了
第一点:不清爽
咱们写代码除了给自己看还要给别人看,那么有时候你自己看自己写的代码,如果第一眼看到这样的代码
var name
if (name = location.hash) {}
都得懂脑筋去"计算"下结果,更何况别人呢,容易造成疑惑,阅读障碍,当然并不是说不可以"秀技能",我的意思是在没事的时候,尽量不要作死,不然结果会很惨,比如上线前,突然就有问题了,别人看你代码帮你解决问题,然后看了半天。。。。。你懂得。
第二点:顺序
举个例子
var number = 0;
if(number++){
console.log('1');
}else{
console.log('0');
}
这个结果会是什么呢?我想很多新手会猜错,大多数人会在思考一下后得出答案,当然高手们就不说了。
如果这题是这样的呢?
var number = 0;
number++;
if(number){
console.log('1');
}else{
console.log('0');
}
我想大家的正确率应该急速上升,并且回答的速度也快了N倍,这就揭示了一个问题,可以好好写的地方,不要作。。。不然你可能命中了一些你意想不到的问题。
因为一个等号和两个等号很容易打错和看错。
有些语言还要求 if 后边的表达式求值后的类型必须是 bool 呢。