【发布时间】:2018-12-12 14:56:12
【问题描述】:
我有一个 js 对象,它的数据包含数字。其中一些可以是0。在这种情况下,if 语句会将这些值评估为空字符串。这是一个例子:
var dataObj = {
"one": 13,
"two": 0,
"three": 3
}
$.each(dataObj, function (j, k) {
if(k){
console.log('Column: '+k);
}else{
console.log('Empty');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我想知道如何防止这种情况发生?有没有办法检查值是否为空但同时不将0 视为空值?
【问题讨论】:
-
if (k || k === 0)怎么样? -
这行得通,但这是一个好习惯吗?
-
为什么不呢?语言规范保证它以特定方式运行。
-
所以不要做一个真实的检查?检查空字符串?
if (k != '') -
未评估为空字符串。除了空字符串之外,还有许多虚假值,
0就是其中之一
标签: javascript jquery if-statement operators