在 PHP 中:
$var=0;
$var="";
$var="0";
$var=NULL;
验证$var是否为0或"0"或""或NULL
if (!$var) {...}
在 jQuery / JavaScript 中:
$var=0;
$var="";
$var="0";
$var=NULL;
if (!$var)
可以用于除了"0"之外的所有值。
是否有一种JavaScript/jQuery的通用方法,可以像php一样检查所有类型的空/ null /零值?
在 PHP 中:
$var=0;
$var="";
$var="0";
$var=NULL;
验证$var是否为0或"0"或""或NULL
if (!$var) {...}
在 jQuery / JavaScript 中:
$var=0;
$var="";
$var="0";
$var=NULL;
if (!$var)
可以用于除了"0"之外的所有值。
是否有一种JavaScript/jQuery的通用方法,可以像php一样检查所有类型的空/ null /零值?
在JavaScript/jQuery中,是否有一种通用的方法来检查所有类型(空/Null/零)的值,就像php一样?
没有。在PHP中,转换为布尔值的值产生的结果与JavaScript不同。因此,您无法完全像PHP那样做。
为什么不明确些呢,这会使您的代码更易于理解?
// falsy value (null, undefined, 0, "", false, NaN) OR "0"
if (!val || val === '0') { }
使用Number(variable)可以得到预期的输出结果。
Number(0) = 0
Number("0") = 0
Number("") = 0
Number(null) = 0
Number(false) = 0
根据表11,抽象操作ToBoolean将其参数转换为布尔类型的值:
Undefined false
Null false
Boolean 结果等于输入参数(不进行转换)。
Number 如果参数是+0、-0或NaN,则结果为false;否则结果为true。
String 如果参数是空字符串(长度为零),则结果为false;否则结果为true。
Object true
当参数为0时,返回false。
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
false
作为undefined
和NaN
的结果)
+v===0
例子:
var a = [0, "", "0", null];
var b = [1, "a", "1", {}];
a.forEach(function(v){
console.log( +v===0 ); // true, true, true, true
});
b.forEach(function(v){
console.log( +v===0 ); // false, false, false, false
});
首先,"0"不是假的,而是真的。因为'0'是一个字符串。如果字符串存在,则返回true。因此,!""应该返回false。也就是说,如果您的数据将零作为字符串返回,则可以使用:
parseInt("0", 10);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
这将返回整数值或NaN。 !NaN将返回true,如果它是一个数字,比如... 0,它将返回!0,所以你可以这样做:function nullOrEmpty(value) {
return (!value && !parseInt(value));
}
!""
返回true
。 - Felix Kling你完全可以使用双重否定。
var test = 0;
console.log(!!test);
var test = "";
console.log(!!test);
var test = "0";
console.log(!!test);
var test = null;
console.log(!!test);
"0"
不是一个空字符串,所以它的值为真,但其他的则为假。
===
进行明确严格的检查。 - dfsq0
...if (+my_var === 0) {
- six fingered man!value || value == '0'
呢? - Andreas Louv