版权声明:本篇博客内容来源于本人亲身经历,属于本人原创,转载请注明出处,感谢分享~~ 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