>typeof(null)
<"object"

对null执行typeof预算,结果返回字符串'object',也就是说,可以将null认为是一个特殊的对象值,含义是“非对象“。

例如:用typeof obj ===‘object’判断obj是否是一个object

写法一:

var obj = {
  name: 'Mocen'
}

function output(obj) {
  if (typeof obj === 'object') {
    console.log(obj.name);
  } else {
    console.log('obj is not a object');
  }
}
output(obj);

写法二:

var obj = {
  name: 'xiaoming'
}
function output(obj) {
  if (!obj && typeof obj === 'object') {
    console.log(obj.name);
  } else {
    console.log('obj is not a object');
  }
}
output(obj);

后者更为严谨

typeof在检测到null时也会显示为object,但在javascript中null并非对象,因此需要增加一个检测null的模块:
if (typeof obj === 'object' && obj !== null) ;


作者:默成S
链接:https://www.jianshu.com/p/a69b3bc9bdc2
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
01-01 18:57