作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
似乎是:
if (typeof a == 'undefined') {
a = 0;
}
和
(typeof a != 'undefined') || (a = 0)
在 Javascript 中有同样的效果。
我真的很喜欢第二个,因为它很短,只有一行代码,但这是否合法,并且跨浏览器有效?我的意思是,jslint 说它有错误。我应该毫无顾虑地使用它吗?
最佳答案
恕我直言|| (a = 0)
与 || 太相似了(a == 0)
从而造成混淆。总有一天,过分热心的开发人员会“修复它”,从而改变您的代码的含义。每个其他开发人员都必须坐一会儿,弄清楚这是您的意图还是只是一个简单的错误。
这实际上就是JSLint试图说:
Expected a conditional expression and instead saw an assignment.
我避免使用令人困惑的结构,因为它们会损害可读性。 a = a || 0;
更易识别且含义相似。
关于脚本:||而不是 IF 语句 - 这个合法且跨浏览器有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12635401/
我是一名优秀的程序员,十分优秀!