第一种:typeof 可以检测一些基本的数据类型 例子: console.log(typeof /\d/);//object console.log(typeof {});//object console.log(typeof []);//object console.log(typeof (null));//object console.log(typeof 123);//number console.log(typeof true);//boolean console.log(typeof function () {});//function console.log(typeof (undefined));//undefined
第二种:instanceof 检测当前实例是否隶属于某各类。 例子: 1 function fn() {} 2 let f = new fn; 3 console.log(f instanceof fn);//true 4 console.log(f instanceof Object);//true 5 let arr = [1,2,3,4]; 6 console.log(arr instanceof Array);//true
第三种:constructor 构造函数 例子: 1 function fn() {} 2 let f = new fn; 3 console.log(f.constructor.name);//fn 4 console.log(fn.constructor);//Function(){} 5 console.log(Function.constructor);//Function(){}
第四种:hasOwnporperty 检测当前属性是否为对象的私有属性 例子: let obj = { name:"xx" }; console.log(obj.hasOwnProperty('name'));//true console.log(obj.hasOwnProperty('xxxx'));//false
第五种:is Array 判断是否为数组 console.log(Array.isArray([]));//true console.log(Array.isArray(new Array()));//true
第六种:Object.portotype.toString (最好的)
(12).toString()//'12' (true).toString()//'true' [12,23].toString()//'12.23' 在Object这个类的原型上也有一个方法toString,但是这个方法并不是把值转换成字符串,而是`返回当前值得所属类详细信息,固定结构:'[object 所属的类]'`
1 var obj ={name:'珠峰'} 2 obj.toString()//[object Object]
调取的正是Object.prototype.toString方法
Object.prototype.toString.call(12)//[boject Number] Object.prototype.toString.call(true)//[boject Boolean] "[object Number]" 使用toString检测数据类型,不管你是啥值,我们都可以正常检测出需要的结果(这个方法检测是`万能`的) 话外: 对象下的toString方法是检测数据类型的,而不是用来转化成字符串的,这时可以用JSON的方法来转化 1 let obj={name:'朱军林'} 2 obj.toString()//=>"[object Object]" 3 4 5 JSON.stringify({name:'朱军林'}) 6 "{"name":"朱军林"}" 来源:http://www./content-4-65901.html |
|