背景:
前台显示问题 金额为0时显示为空,发现代码如下:
price != '' ? price.toFixed(2) : ''
price的值确实是0,打断点发现表达式结果为false。。。
查阅:
查了下w3school
https://www.w3school.com.cn/js/js_comparisons.asp,得到如下结论:
也就是问题是空字符串转换为0导致。
另外boolean类型也会转化为数字进行比较:true:1;false:0。
示例如下:
如何解决呢?
改写代码如下:
price !== '' ? price.toFixed(2) : ''
=== 和 !== 是会判断数据类型的
这样表达式就能返回true从而显示出数字0了
备注:
查阅过程中发现了一个“薛定谔的对象”蛮有意思,null是Object还是Null?
https://www.cnblogs.com/chargeworld/p/10387195.html