在Javascript中检查一些东西是否是空的?
我怎样才能检查一个变量是否在Javascript中为空? 对不起,这个愚蠢的问题,但我是一个JavaScript的新手!
if(response.photo) is empty {
do something
else {
do something else
}
response.photo
来自JSON,有时候它可能是空的,空的数据单元! 我想检查它是否是空的。
如果你正在测试一个空字符串:
if(myVar === ''){ // do stuff };
如果您正在检查已声明但尚未定义的变量:
if(myVar === null){ // do stuff };
如果您正在检查可能未定义的变量:
if(myVar === undefined){ // do stuff };
如果你同时检查两个变量是空的还是未定义的:
if(myVar == null){ // do stuff };
这是一个比你想象的更大的问题。 变量可以通过很多方式清空。 有点取决于你需要知道的。
// quick and dirty will be true for '', null, undefined, 0, NaN and false.
if (!x)
// test for null OR undefined
if (x == null)
// test for undefined OR null
if (x == undefined)
// test for undefined
if (x === undefined)
// or safer test for undefined since the variable undefined can be set causing tests against it to fail.
if (typeof x == 'undefined')
// test for empty string
if (x === '')
// if you know its an array
if (x.length == 0)
// or
if (!x.length)
// BONUS test for empty object
var empty = true, fld;
for (fld in x) {
empty = false;
break;
}
这应该涵盖所有情况:
function empty( val ) {
// test results
//---------------
// [] true, empty array
// {} true, empty object
// null true
// undefined true
// "" true, empty string
// '' true, empty string
// 0 false, number
// true false, boolean
// false false, boolean
// Date false
// function false
if (val === undefined)
return true;
if (typeof (val) == 'function' || typeof (val) == 'number' || typeof (val) == 'boolean' || Object.prototype.toString.call(val) === '[object Date]')
return false;
if (val == null || val.length === 0) // null or 0 length array
return true;
if (typeof (val) == "object") {
// empty object
var r = true;
for (var f in val)
r = false;
return r;
}
return false;
}
链接地址: http://www.djcxy.com/p/76353.html