三元表达式的坑

版权声明:本篇博客内容来源于本人亲身经历,属于本人原创,转载请注明出处,感谢分享~~ https://blog.csdn.net/hl_qianduan/article/details/88736315

 情况:

0?0:""   //结果为""

在控制台输出看看

是的,没错在三元表达式中, 如果该值为0,那么如果要想等于他本身的话,会变为空。

即:

var a=0;
a?a:""   //a为""

原因是

三元表达式的含义:条件?真结果:假结果      (例子: a?true:false)

也就是条件 将会转换为布尔值,为真(true)返回真结果,为假(false)返回假结果

上面a?a:""  结果为“”,那么原因就是a也就是0转换为布尔值为false

解决方案: 

那就将这个条件变为true就好了,例如 如果a等于0或者a,那么返回a,否则返回“”

(a==0||a)?a:""

补充知识:

转换布尔值除了以下5个值,其他都是转为true:

Boolean(undefined) // false     

Boolean(null) // false

Boolean(0) // false

Boolean(NaN) // false

Boolean('') // false

参考博客  https://www.cnblogs.com/wincent98/p/9812860.html

猜你喜欢

转载自blog.csdn.net/hl_qianduan/article/details/88736315