>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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。