上一篇:数组方法汇总
数据类型分类:
检测方法:
-
type of
对基本数据类型(null除外)和es6的Symbol还有Function有效,其余都无效检测类型都是object
typeof ''; // string 有效
typeof 1; // number 有效
typeof Symbol(); // symbol 有效
typeof true; //boolean 有效
typeof undefined; //undefined 有效
typeof null; //object 无效
typeof [] ; //object 无效
typeof function(){}; // function 有效
typeof new Date(); //object 无效
typeof new RegExp(); //object 无效
-
instanceof :关于原理,建议先去了解一下原型及原型链
用途:检测 A是否是B的实例
用法:A instanceof B
返回值: true || false
//当 A 的 __proto__ 指向 B 的 prototype 时,就认为 A 就是 B 的实例
[] instanceof Array; // true
{} instanceof Object;// true
new Date() instanceof Date;// true
function Person(){};
new Person() instanceof Person;
[] instanceof Object; // true
new Date() instanceof Object;// true
new Person instanceof Object;// true
-
constructor
用途:判断A作为构造函数是否遗传给了a,a的构造函数是否是A。
用法: f.constructor == F
返回值:true || false
如图:
constructor检测 -
Object.prototype.toString.call(): 可用于所有的数据类型检测
缩写:toString.call()
toString.call('') ; // [object String]
toString.call(1) ; // [object Number]
toString.call(true) ; // [object Boolean]
toString.call(Symbol()); //[object Symbol]
toString.call(undefined) ; // [object Undefined]
toString.call(null) ; // [object Null]
toString.call(new Function()) ; // [object Function]
toString.call(new Date()) ; // [object Date]
toString.call([]) ; // [object Array]
toString.call(new RegExp()) ; // [object RegExp]
toString.call(new Error()) ; // [object Error]
toString.call(document) ; // [object HTMLDocument]
toString.call(window) ; //[object global] window 是全局对象 global 的引用
网友评论