码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 中,num = num || 1 这种写法有哪些优缺点?

时间:2017-04-22 19:41:35      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:efault   写法   好处   对象   函数   类型   处理   http   一点   

语法糖,等价于 if(!!num === false) num=1; 类似于java的 num=null ? 1 : num

 

 

以下是来自某位知友的解答:

 

就是个简写法而已。好处就是短一点,但是其实坏处更大

你是否确切知道什么时候会变成1?

——当num有值为0时,也会变成1!
——当num有值为NaN时(很可能意味着前面的计算出错了),也会变成1!
——另外当传入的值类型错误时,本来或许你的程序会报错,但是经过这个语句,也许就不报错了。

这些很可能不是你想要的结果,尤其是许多函数可能会加上针对0这个特殊值的处理,这往往会导致错误。就算现在正好是你想要的结果,但是以后的维护者(包括1个月以后的你自己)未必能一眼看出来!

所以个人建议在一定规模以上的团队或项目中,不要用 || 的短路,还是老老实实的写:

if (num == null) num = 1

唯一的例外是,如果你确切的知道那是一个对象而不可能是primitive值,可以用。
option = option || defaultOption


作者:贺师俊
来源:https://www.zhihu.com/question/20377595/answer/14948746

 

JavaScript 中,num = num || 1 这种写法有哪些优缺点?

标签:efault   写法   好处   对象   函数   类型   处理   http   一点   

原文地址:http://www.cnblogs.com/printN/p/6748738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!