我收到下面的JavaScript錯誤:的Javascript NULL值
'value' is null or not an object
可有人請讓我知道什麼是檢查對象的值是否在JavaScript NULL,因爲我一直在使用的最佳方法:
if ((pNonUserID !== "") || (pExtUserID !== "")){
這是正確的還是有更好的方法?
謝謝。
我收到下面的JavaScript錯誤:的Javascript NULL值
'value' is null or not an object
可有人請讓我知道什麼是檢查對象的值是否在JavaScript NULL,因爲我一直在使用的最佳方法:
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);
您的第一個代碼示例的含義不正確。 '如果(!n)alert('爲null。');'如果有'n =='''或'n == 0'等其他情況,'也會提醒'爲空'。 – 2013-06-27 09:53:04
if (pNonUserID && pExtUserID)
{
// neither pNonUserId nor pExtUserID are null here
}
任何Javascript變量自動當它引用一個對象時,它的計算結果爲true。
你在做什麼是比較空字符串,它不是空的。
當兩個變量不是同一個對象時,!==運算符返回true。它不看對象的值在所有
爲了測試,如果事情是空:
myVar == null
你的代碼被測試,看看是否變量「pNonUserId」提到了同一個對象「 「,它永遠不會是真的,因爲」「將永遠是空字符串的新實例。
順便說一句,測試如:
var n = something();
// do stuff
if (n)
doSomethingElse();
是一個壞主意。如果n是一個布爾值並且是假的,但是你期望if區塊測試無效,那麼你會受到衝擊。
我正要在這裏與一個關於測試null的抱怨。應該可以想像(和正確的用法)來測試'var n = null; if(n!== null){doSomething(n); }但是,可惜的是,一個null對象會在上面簡單地評估爲false。如果決定將null作爲對象,並且決定「===」應該測試類型和值,那麼上面應該是有效的代碼。讓我瘋狂。 – eggmatters 2013-11-14 17:13:44
null,undefined和空字符串在條件語句中被視爲false。
所以
if(!n) alert("n is null or undefined or empty string");
if(n) alert("n has some value");
爲此,inflagranti建議條件將完全爲你工作
if(pNonUserID && pExtUserID) {
}
你的代碼是針對一個空字符串測試,而不是'null'。如果'pNonUserID = null;'那麼表達式將評估爲'true'。但我認爲錯誤信息與您發佈的代碼無關。錯誤在別的地方。 – 2011-03-30 12:30:40
查看http://stackoverflow.com/questions/801032/null-object-in-javascript瞭解更多信息 – 2011-03-30 12:32:21
Felix是對的。更糟糕的是,您正在使用相同的運算符,它會同時檢查值和類型。如果你使用了'!=',它會起作用(因爲它檢查了值,'null ==「」')。查看我的答案以獲取更多信息。 – Christian 2011-03-30 12:33:35