我用这两种方式调用函数
foo([x,y])
或 foo({x:x,y:y})
且 x,y ∈ [0,∞ )
foo 函数看起来像这样
var x = pos.x || pos[0],
y = pos.y || pos[1];
如果我使用 x=0
以第二种方式调用该函数,则 pos.x
将被评估为 false,从而留下 x=pos[0]
即未定义
。
我想知道是否有办法让 0
不像 if(pos.x===0){/的普通方法一样被评估为
false
*...*/}
最佳答案
您需要检查 pos.x
是否存在,而不是检查它的值。您可以使用 hasOwnProperty
来执行此操作功能:
var x = pos.hasOwnProperty('x') ? pos.x : pos[0];
关于javascript - 值变量作为 0 不等于简写 if 表达式中的 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32693531/