typeof操作符,返回一个字符串,参数是一个表达式,表示对象或原始值,其类型将被返回。
使用方法:typeof 参数;
常见的返回值有"undefined","object","boolean","number","string","symbol","function"一般情况下检测基本数据类型到了这里就够用了,但是typeof对判断复合型数据类型就没那么细心了。
typeof []//object
typeof {}//object
这里就会用到inatanceof
var b=[];
b inatanceof Array;//true
inatanceof的另一个作用就是检测一个对象是不是一个构造函数的实例
function C(){}
var B=new C();
B instanceof C//true;
那hasOwnProperty又是什么鬼呢?
我们知道了一个变量或者对象的数据类型,也知道了怎样更仔细的分辨复合型数据类型,那这个对象的属性和方法怎样才能分辨出是自定义的还是原型上的呢?
判断一个属性是定义在对象本身而不是继承自原型链,我们需要使用hasOwnProperty 方法,而且hasOwnProperty 方法是 Javascript 中唯一一个处理对象属性而不会往上遍历原型链的。
Object.prototype.c =function(){console.log('原型属性')};
var a = {b: '自定义属性'};
a.c(); //输出'原型属性'
a.b//输出'自定义属性'
a.hasOwnProperty('c'); // false
a.hasOwnProperty('b'); // true
谢谢关注!