2012-02-11 13 views
-1

如何檢查javascript變量是否存在,空,數組,(數組但空),未定義,對象等在如何檢查javascript變量是否存在,空,數組,(數組但空),undefined,對象等

正如在標題中提到的,我需要一個總體概述如何在幾種情況下檢查javascript變量而不返回導致瀏覽器停止處理頁面加載的任何錯誤。 (現在我有幾個問題,這個話題在

例如IE出現錯誤而終止的情況下,_OS是不確定的,其他瀏覽器犯規:

var _os = fbuser.orders; 

var o =0; 
var _ret = false; 
for (var i = 0; i < _os.length; i++){ 
... 

而且我也需要像正常使用運營商的指導==,===。

+0

看看這個http://stackoverflow.com/questions/858181/how-to-check-a-not-defined-variable-in-javascript – 2012-02-11 21:56:32

+2

這不是「給我一個指南」.com。你做了什麼研究? – 2012-02-11 21:57:40

回答

3

正如標題所說,我需要一個概述如何檢查在若干情況下 JavaScript的變量,但不返回任何錯誤 導致瀏覽器停止處理頁面加載。

要檢查是否變量是存在的,你可以簡單地使用typeof

if (typeof _os != 'undefined'){ 
    // your code 
} 

typeof也將有助於檢查方式,當你避免var undefined錯誤。


此外我還需要像== 適當使用運算符的引導,===。

兩者都是平等運算符。第一個是寬鬆比較檢查值,而後者不僅檢查而且類型被比較的操作數。

下面是一個例子:

4 == "4" // true 
4 === "4" // false because types are different eg number and string 

隨着== JavaScript並自動鍵入cohersion。當您確定兩個操作數的類型和值時,請始終使用嚴格的相等運算符,例如===


通常,使用typeofproblematic,你應該只用它來檢查一個變量是否存在。

在MDN閱讀更多:

1

typeof運營商是非常有幫助的位置:

typeof asdf 
// "undefined" 

也許你想是這樣的,你的情況:

// Handle cases where `fbuser.orders` is not an array: 
var _os = fbuser.orders || []