javascript 高级编程系列 - 数据类型检测

1. typeof 操作符

只能判断基本类型,无法判断对象类型

typeof 1  // 'number'
typeof 'hello' // 'string'
typeof true // 'boolean'
typeof function(){} // 'function'
typeof []   // 'object'
typeof {}   // 'object'

2. Object.prototype.toString 方法

用来识别原生对象

Object.prototype.toString.call(1)  // [object Number]
Object.prototype.toString.call(true) // [object Boolean]
Object.prototype.toString.call('string') // [object String]
Object.prototype.toString.call([]); // [object Array]
Object.prototype.toString.call({}); // [object Object]
Object.prototype.toString.call(()=>{}); // [object Function]

3. instanceof 操作符

只能用来检测对象,无法检测基本数据类型,所以必须将基本类型转为对象才能进行检测

Object(1) instanceof Number   // true
Object('str') instanceof String // true
Object(true) instanceof Boolean // true
Object(function(){}) instanceof Function // true
Object({}) instanceof Object // true
Object([]) instanceof Array // true

4. constructor 属性

根据对象的构造函数,判断对象类型

('sh').constructor // [Function: String]
(true).constructor // [Function: Boolean]
(1).constructor  // [Function: Number]
([]).constructor // [Function: Array]
({}).constructor // [Function: Object]
(function(){}).constructor // [Function: Function]
posted @ 2023-07-13 17:11  箫笛  阅读(13)  评论(0编辑  收藏  举报