出于某种原因,我的老板更改了我在 JS 中获取的数据,因此,如果我曾经收到字符串,现在我可以接收字符串或数字(从 0 到 n)。直到今天,当我发现要测试的数字恰好为 0 时,旧代码块才出现问题。
原因是这段代码:
if(myObject.getData()) {
...
}
else {
//here's where I go
}
getData()
返回字符串和数字,但是当数字为 0
时,if
测试将其作为 bool 值和结果始终是 false
,而两行之后,在大括号内,我需要数字 0
将其发送到服务器。
检查数据是否不是null
、不是false
、不是""
、甚至不是 bool 值和"preserve"的最佳方法是什么"我的 0
?
最佳答案
您可以在 if
语句中引入 OR 以使用严格相等运算符 (===
) 检查它是否为数值 0
):
var data = myObject.getData();
if ( data || data === 0 )
一些测试用例:
data = "" // false
data = false // false
data = undefined // false
data = 0 // true
data = 1 // true
data = "test" // true
关于javascript - 如果数字为 0,则针对空的测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296921/