JavaScript 中,num = num || 1 这种写法有哪些优缺点?
2017-05-02 13:13
218 查看
JavaScript 中,num = num || 1 这种写法有哪些优缺点?
就是个简写法而已。好处就是短一点,但是其实坏处更大。
你是否确切知道什么时候会变成1?
——当num有值为0时,也会变成1!
——当num有值为NaN时(很可能意味着前面的计算出错了),也会变成1!
——另外当传入的值类型错误时,本来或许你的程序会报错,但是经过这个语句,也许就不报错了。
这些很可能不是你想要的结果,尤其是许多函数可能会加上针对0这个特殊值的处理,这往往会导致错误。就算现在正好是你想要的结果,但是以后的维护者(包括1个月以后的你自己)未必能一眼看出来!
所以个人建议在一定规模以上的团队或项目中,不要用 || 的短路,还是老老实实的写:
if (num == null) num = 1
唯一的例外是,如果你确切的知道那是一个对象而不可能是primitive值,可以用。
option = option || defaultOption
就是个简写法而已。好处就是短一点,但是其实坏处更大。
你是否确切知道什么时候会变成1?
——当num有值为0时,也会变成1!
——当num有值为NaN时(很可能意味着前面的计算出错了),也会变成1!
——另外当传入的值类型错误时,本来或许你的程序会报错,但是经过这个语句,也许就不报错了。
这些很可能不是你想要的结果,尤其是许多函数可能会加上针对0这个特殊值的处理,这往往会导致错误。就算现在正好是你想要的结果,但是以后的维护者(包括1个月以后的你自己)未必能一眼看出来!
所以个人建议在一定规模以上的团队或项目中,不要用 || 的短路,还是老老实实的写:
if (num == null) num = 1
唯一的例外是,如果你确切的知道那是一个对象而不可能是primitive值,可以用。
option = option || defaultOption
相关文章推荐
- JavaScript 中,num = num || 1 这种写法有哪些优缺点?
- javascript面向对象的常见写法与优缺点
- javascript 中(function{})()这种写法什么意思
- javascript面向对象的常见写法与优缺点
- javascript中"return obj === void 0"这种写法的原因和好处
- 通过JavaScript验证表单的写法
- javascript的静态类的写法
- javascript下with 的简化代码写法
- flash调用(包括最简单的JavaScript调用C#参数写法)
- javascript css float属性的特殊写法
- 在HTML页面嵌入Javascript写法的区别(script标签)
- 编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
- Javascript事件处理代码的三种写法
- JAVASCRIPT在IE和FF的写法
- Javascript多种浏览器兼容写法分析第1/3页
- HTML中调用JavaScript的几种情况和规范写法
- 一个pl/sql中可以代替游标的写法(用这种方法也可以实现象sql中top的效果)
- Javascript多种浏览器兼容写法分析第1/3页
- javascript下操作css的float属性的特殊写法
- javascript下操作css的float属性的特殊写法