1.确保这个值等于ture
if (someBoolean == true) { doSomething(); }
2.只有等于ture时我才return ture
if (result == true) return true; else return result;
3.我就是不信任if
if (result <= 10) { handling(); } else if (result > 10) { otherHandling(); } else { handling(); // to be sure }
4.要写出一看就懂的代码
function DocumentDotWrite(s){ document.write(s); }
第2种我上个月领略过.
我见过最匪夷所思的代码是:
if (total10)
{
//do something.
}
if (total 10)
{
Foo();
}
放弃研究标签
if (total.LessThan(10) && total.GreaterThan(10))
{
Foo();
}
即使是新手也不会写出这样的代码吧
前两种的话,在脚本语言里是不是常用呀?当然,我看到的一般都是== false.
第二种,在脚本语言里如果结果正确返回true,如果不正确返回错误信息是不是可以这样写呀?
弱弱的问一下,第一种和第二种代码分别有什么问题?
为什么这么写不好呢?
第一种: 这段可以省略” == true”
第二种: return result
代码要简洁, 不是说正确就可以, 你多写了这么多行, 读代码的人要浪费多少脑细胞啊? 要不就是为了代码行数滥竽充数.
第一种跟第二种要看情况
如果someBoolean不是bool型(当然,我知道这里看名字应该是bool型)而且object型,那么为了绝对的安全,真就要这么写了。
比如,一个参数value是一个object型,并且,他有可能是任何类型,但我只希望他是bool型,并为true时执行一些东西,那么,就真要这样做:
if(value == true){
}
第一种是错误的做法,一般程序中认为不为0的所有值都是true;但是true只有一个值,可能为1,也可能为其他的;if(2==true)这会怎样?
第二种也存在这个问题,另外直接return result;就好啦
someBoolean = someBoolean == true ? false : true;
好吧,我承认,我也这么写过,,,,,以后再也不了。。。。
第一种我常用,我没觉得有什么不好
第二种倒是很奇葩
1、
if(someBoolean)
doSomething();
2、
return result;
3、
if(result <= 10)
handling();
else
otherHandling();
4、
document.write(s);
最后那段 js 的目的是防止 document.write 被广告拦截器干掉。
突然想到,没有验证:
document['write'](s);
能否执行呢?
能写出这样代码的估计是超级新人。这种其实不怎么抓狂,基本一眼就能发现问题,而且是小问题,少点代码洁癖就不会觉得问题有多严重。真在抓狂的是滥用设计模式,一坨坨的垃圾,看不明,也没注释说明为什么这么做,想修改又一堆陷阱。
严重同意,曾经改过前同事写一项很简单的业务功能,明明可以很简单的实现,非要搞一堆复杂的方法,那种很符合设计模式的方法,导致改到我吐血.
呵呵,刚写代码的时候,没少写第一种
第一个没问题, 为什么”让人抓狂“? “someBoolean==true”非常明确的指明了这个值是一个bool值而不是指针, 难道是不好的编程习惯么?
我也觉得第一段代码没什么 反而如果跨平台时是非常安全的
第一个写法的好处是,可以方便的改为
if (someBoolean == false) {
doSomething();
}
不要五十步笑百步。
我想一个正常的程序员是不会写出这种代码的,写这种代码都是头脑不清醒的时候。
你想要是你加班通宵半夜写代码,你能保证不写这样的代码?
我想关于第一点的另一种解读:
if (someBoolean == true) {
doSomething();
}
写成这样,也许是基于多线程的状态,bool 变量有可能被修改变为大于1的数值
不要忘了这是在写JS
第一种写法没问题。因为变量是可以随时被赋予其他类型的。
而且代码是随时会改的,要经手很多人,有时候修改者要确保安全又没充足的时间吃透代码, 就会出现以上的情况。
if( boolean ){
}else{
do();
}