假设我在Java中访问一个名为jso的JavaScript对象,我正在使用以下语句来测试它是否为null
if (jso == null)
但是,当jso包含一些空值时,这个语句似乎返回true,这不是我想要的。
是否有任何方法可以区分空JavaScript对象和包含一些空值的JavaScript对象?
由于
答案 0 :(得分:14)
要确定目标引用是否包含具有空值的成员,您必须编写自己的函数,因为没有现成的函数可以为您执行此操作。一个简单的方法是:
function hasNull(target) {
for (var member in target) {
if (target[member] == null)
return true;
}
return false;
}
毋庸置疑,这只会深入一级,所以如果target
上的某个成员包含另一个具有空值的对象,则仍会返回false。作为一种用法:
var o = { a: 'a', b: false, c: null };
document.write('Contains null: ' + hasNull(o));
将打印出来:
包含null:true
相反,以下内容将打印出false
:
var o = { a: 'a', b: false, c: {} };
document.write('Contains null: ' + hasNull(o));
答案 1 :(得分:5)
这仅供您参考。不要投票。
var jso;
document.writeln(typeof(jso)); // 'undefined'
document.writeln(jso); // value of jso = 'undefined'
jso = null;
document.writeln(typeof(jso)); // null is an 'object'
document.writeln(jso); // value of jso = 'null'
document.writeln(jso == null); // true
document.writeln(jso === null); // true
document.writeln(jso == "null"); // false
答案 2 :(得分:2)
尝试额外的=
if (jso === null)