2017-06-23 52 views
1

我該如何用Javascript做下面的事情?物體存在或真假

var object 

function() { 
    return { 
     object: Return true if object exists or object is set to true, or false if set to false, if object doesnt exisit return false 
    } 
} 
+4

的[檢查是否在JavaScript對象存在]可能的複製(https://stackoverflow.com/questions/4186906/check-if-object-exists-in-javascript) –

+2

'return !!對象' – Amy

回答

1

不存在的對象是undefined。您可以將對象與undefined進行比較以檢查其存在。

確保使用===檢查與類型的相等性。

0

你可以使用instanceof來檢查它是否是一個對象。如果對象爲空,Typeof將返回true,因爲null在技術上是一個對象!

var obj = {}; 
var obj2 = null; 

alert("Is obj a true object? "+isObject(obj)); 
alert("Is obj2 a true object? "+isObject(obj2)); 

// False positive 
alert("Is obj a object? "+isObjectFalsePositive(obj)); 
alert("Is obj2 a object? "+isObjectFalsePositive(obj2)); 

function isObject(inputVar) { 
    return inputVar instanceof Object; 
} 

function isObjectFalsePositive(inputVar) { 
    return typeof inputVar === 'object'; 
} 

例:https://jsfiddle.net/2Lt2L14b/5/

-3

return yourElement.length > 0;

+4

如果對象不存在,這將會出錯。 – Barmar

+0

不用它,嘗試它,在JavaScript中它是檢查某個元素是否存在的好方法... – Yovav

+3

試過了......'console.log(bladibla.length)'....未捕獲的ReferenceError:bladibla是沒有定義......當然Barmar不知道他在說什麼;)=) – yezzz

0

您需要檢查undefinedfalse返回值false。如果object值設置爲true,則返回標誌應爲true。下面的代碼片段可能會幫助你。

var object; 
 
function checkObject() { 
 
\t var returnFlag; 
 
\t if(typeof object == 'undefined' || !object) { 
 
\t \t returnFlag = false; 
 
\t } else if(object) { 
 
\t \t returnFlag = true; 
 
\t } 
 
\t return returnFlag; 
 
} 
 

 
console.log(checkObject());

或者你可以返回!!object

var object; 
 
function checkObject() { 
 
\t return !!object; 
 
} 
 

 
console.log(checkObject());

+1

應該'typeof對象=='undefined'' – Barmar

+0

@Barmar謝謝,我已糾正它。 –

+0

感謝迄今爲止的答案,但我希望在一行中使用速記解決方案,它考慮到了如果object = true或false,或者object簡單地呈現其真實性,如果不存在,則應該是false – Kingy04