Javascript空值
我收到以下javascript错误:Javascript空值,javascript,Javascript,我收到以下javascript错误: 'value' is null or not an object 有人能告诉我什么是检查javascript中对象值是否为空的最佳方法吗 if ((pNonUserID !== "") || (pExtUserID !== "")){ 这是正确的还是有更好的方法 谢谢。您不必这样做: var n=null; if(n)alert('Not null.'); // not shown if(!n)alert('Is null.'); // popup i
'value' is null or not an object
有人能告诉我什么是检查javascript中对象值是否为空的最佳方法吗
if ((pNonUserID !== "") || (pExtUserID !== "")){
这是正确的还是有更好的方法
谢谢。您不必这样做:
var n=null;
if(n)alert('Not null.'); // not shown
if(!n)alert('Is null.'); // popup is shown
您的错误意味着:
var n=null;
alert(n.something); // Error: n is null or not an object.
在上述情况下,应使用类似以下内容:
if(n)alert(n.something);
任何Javascript变量在引用对象时都会自动计算为true
您所做的是与空字符串的比较,空字符串与null不同。the!==当两个变量不是同一对象时,运算符返回true。它根本不看对象的值 要测试某个内容是否为空:
myVar == null
您的代码正在测试变量“pNonUserId”是否引用了与“”相同的对象,因为“”始终是空字符串的新实例,因此该对象永远不会为true
作为旁白,一种测试,例如:
var n = something();
// do stuff
if (n)
doSomethingElse();
这是个坏主意。如果n是一个布尔值且为false,但您希望If块测试null,那么您将受到冲击在条件语句中,P>>空、未定义和空字符串被认为是false。 所以 因此,inflagranti建议的条件将非常适合您
if(pNonUserID && pExtUserID) {
}
您的代码正在测试空字符串,而不是
null
。如果pNonUserID=null
然后表达式将计算为true
。但我认为错误信息与您发布的代码无关。错误在其他地方。有关更多信息,请参阅infoFelix是正确的。更糟糕的是,您使用的是相同的运算符,它同时检查值和类型。如果您使用了=
它本来可以工作(因为它检查值,并且null==”
)。有关更多信息,请参阅我的答案。第一个代码示例的含义不正确<代码>如果(!n)警报('为空')如果n='
或n==0
以及其他情况,code>也会提醒为null
。我将在这里插话,抱怨测试是否为null。测试var n=null应该是可以想象的(也是正确的用法);如果(n!==null){doSomething(n);}
但是唉,空对象可能会在上面计算为false。如果决定将null设为对象,并且决定“==”应测试类型和值,则上述代码应为有效代码。让我发疯。
if(!n) alert("n is null or undefined or empty string");
if(n) alert("n has some value");
if(pNonUserID && pExtUserID) {
}