js中自带的一些判断类型方法
数据类型
基本数据类型:string number boolean underfined null
引用数据类型:array object
一、typeof
js提供了typeof运算符,用来检测一个变量的类型。
Number ;string ;boolean ;underfined; null; object; function
typeof 123 //Number
typeof 'abc' //String
typeof true //Boolean
typeof undefined //Undefined
typeof null //Object
//null类型进行typeof操作符后,结果是object,原因在于,null类型被当做一个空对象引用。
typeof { } //Object
typeof [ ] //Object
typeof console.log() //Undefined
二、instanceof
instanceof 就是判断一个实例是否属于某种类型,instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型
instanceof操作符用来判断引用类型。
语法:A instanceof B
判断规则:沿着A的_proto_属性这条线来找,同时沿着B的prototype属性这条线,若果两条线能找到同一个引用,即 同一个对象,则返回true。
function Foo(){}
function Bar(){}
Bar.prototype = new Foo()
let obj = new Bar()
obj instanceof Bar //true
obj instanceof Foo //true
alert( Object instanceof Function) //true
alert(Function instanceof Object) //true
alert( Function instanceof Function) //true
三 、hasownproperty
Object的hasOwnProperty()方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性。
var o = new Object();
o.prop = 'exists';
function changeO() {
o.newprop = o.prop;
delete o.prop;
}
o.hasOwnProperty('prop'); // true
changeO();
o.hasOwnProperty('prop'); // false