我有一个名为t
的变量。
有时这个变量等于某个对象:
var t = {id:2 Name:"Mike" };
有时候这个变量可能只包含string.Like:
var t = "someString";
在某些时候,我需要检查变量是否是对象,以及它是否包含名为id
的属性。
如何检查变量是否为object并包含名为id
的属性?
答案 0 :(得分:4)
您可以使用&&
(和)运算符
if (t && t.id && td.id === "blah")
或更短:
if (t && t.id === "blah")
答案 1 :(得分:3)
使用typeof
和hasOwnProperty
:
if(typeof t == 'object' && t.hasOwnProperty('id')) {
//your code for using t.id
}
答案 2 :(得分:1)
您可以使用toString.call(value) === '[object Object]'
和toString.call(value) === '[object String]'
var t = {
id: 2,
Name: "Mike"
};
function isObject(value, property) {
return value !== null && toString.call(value) === '[object Object]' && value.hasOwnProperty(property);
}
function isString(value) {
return value !== null && toString.call(value) === '[object String]';
}
document.write("isObject : " + isObject(t, 'id') + " | " + "isString : " + isString(t) + "<br>");
var t = "blabla";
document.write("isObject : " + isObject(t, 'id') + " | " + "isString : " + isString(t));