Javascript 如何检查名为id的变量属性?

Javascript 如何检查名为id的变量属性?,javascript,Javascript,我有一个名为t的变量 有时此变量等于某个对象: var t = {id:2 Name:"Mike" }; 有时此变量可能只包含字符串。如下所示: var t = "someString"; 在某些时候,我需要检查变量是否为object,以及它是否包含名为id的属性 如何检查变量是否为object并包含名为id的属性?使用typeof和hasOwnProperty: if(typeof t == 'object' && t.hasOwnProperty('id')) {

我有一个名为
t
的变量

有时此变量等于某个对象:

var t = {id:2 Name:"Mike" };
有时此变量可能只包含字符串。如下所示:

 var t = "someString";
在某些时候,我需要检查变量是否为object,以及它是否包含名为
id
的属性


如何检查变量是否为object并包含名为
id
的属性?

使用
typeof
hasOwnProperty

if(typeof t == 'object' && t.hasOwnProperty('id')) {
     //your code for using t.id
}

使用
typeof
hasOwnProperty

if(typeof t == 'object' && t.hasOwnProperty('id')) {
     //your code for using t.id
}

您可以使用
&&
(and)运算符

或更短:

if (t && t.id === "blah")

您可以使用
&&
(and)运算符

或更短:

if (t && t.id === "blah")

您可以使用
toString.call(值)=='[object object]'
toString.call(值)=='[object String]'

var t={
id:2,
姓名:“迈克”
};
函数isObject(值、属性){
返回值!==null&&toString.call(值)=='[object]'&&value.hasOwnProperty(属性);
}
函数isString(值){
返回值!==null&&toString.call(值)=='[objectstring]';
}
文件。写下(“isObject:+isObject(t,'id')+“|”+”isString:“+isString(t)+”
”; var t=“blabla”;
文件。写入(“isObject:+isObject(t,'id')+“|”+”isString:+isString(t))您可以使用
toString.call(值)=='[object object]'
toString.call(值)==='[object String]'

var t={
id:2,
姓名:“迈克”
};
函数isObject(值、属性){
返回值!==null&&toString.call(值)=='[object]'&&value.hasOwnProperty(属性);
}
函数isString(值){
返回值!==null&&toString.call(值)=='[objectstring]';
}
文件。写下(“isObject:+isObject(t,'id')+“|”+”isString:“+isString(t)+”
”; var t=“blabla”;
文件。写入(“isObject:+isObject(t,'id')+“|”+”isString:+isString(t))是否有任何理由使用第一个变量?在本文中,没有。。。任何会阻塞
t.id==
的东西都无法通过第一次检查。是否有任何理由使用第一个变量?在本文中,没有。。。任何会阻塞
t.id==
的东西都无法通过第一次检查。