js 0 "" null undefined

在写js时,因为有些数值可能不会提供,需要给一个默认的值,我经常喜欢这么写:

x = data.x || 10;

因为这个写法简单方便。

但这个写法是有问题的,当这个data.x 为 0 或者为 null 或者是 undefined,x 的值都会是10,那么data.x 永远没办法把0 这个值传递给方法内部使用。

如果的确有0这种情况的话,就必须换一种写法,我常用的另一种写法是三目运算:

x = typeof data.x == "undefined" ? 10 : data.x;

0 “” null undefined 虽然都是false ,但是类型是不一样的:

typeof 0 等于 "number"
typeof "" 等于 "string"
typeof null 等于 "object"
typeof undefined 等于 "undefined"

不晓得有没有更好的处理方式,如果有的话欢迎留言。

原文地址:https://www.cnblogs.com/LcxSummer/p/13265535.html