@TOC
1 问题现象
- 错误代码:
if(!timer){
clearInterval(timer);
}
- 代码目标:如果timer不为空,进行清理
2 原因分析
- 脑海中直译文字:不为空, 不空, ! time, 因为time可能为空
- 印象流写代码,感觉自己应该转行,走艺术流
3 尝试解决方式
- 1 老实写代码
if(timer != null){
}
- 2 不为空,就是有值
if(timer){
}
4 总结原因
- 要面子,想写好看的代码 ,又没有理解到位
if(!timer){
//否定的否定,即为肯定
//所以这里是多了一层逻辑,并不是文字读起来的不为空
}
- 不对,最初这种写法,是为了减少空对象的判断
if(timer == null || timer == '' || timer == 'undefined')
- 但我觉得后者可读性更强
5 结论
- 代码 ,第一次的代码 ,请正常去写,不为空就写为 !=null,为空,就写为 == null, 不要跟我说什么优化,就是要一看就懂