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

我收到以下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 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,那么您将受到冲击>空、未定义和空字符串被认为是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) { 

}