簡體   English   中英

如果定義了變量,請執行某些操作

[英]Do something if a variable is defined

在JS中,如果定義了變量,我想做一些事情。 我認為這種語法會起作用:

if (foo) {
    console.log('foo is defined');
} else {
    console.log('foo is not defined');       
}

但我得到一個“未捕獲的參考錯誤:未定義foo”:

http://jsfiddle.net/cfUss/

我錯過了什么嗎? 我認為這是非常基本的js,之前使用過這種語法。

檢查其類型

if (typeof(foo) != 'undefined')

您的檢查僅在聲明變量且為false時才有效 ,但您需要知道對象是否已定義

有兩個相關的概念,即聲明和定義。 嘗試引用未聲明的名稱會引發錯誤,而不是嘗試引用未定義的值。

例如:

var foo; //Declare the variable. It's still not defined however
if (foo) {
    console.log('foo is defined');
} else {
    console.log('foo is not defined');       
}

當然,如果我真的想要檢測一些你想要提到的未聲明或未定義的東西,我通常更喜歡更明確並使用if(typeof foo != "undefined")因為var foo; if (foo) var foo; if (foo)不觸發已定義但值為false的值。 最后,如果你想測試某些東西是否未定義並允許它在未聲明的情況下拋出,你可以直接比較未定義的值,例如if(foo !== void(0))

if (typeof foo == "undefined") {
     console.log('doesnt exist');  
} else {
     console.log('it exists');   
}

http://jsfiddle.net/cfUss/2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM