JS基本类型和类型检测

类型

基本类型:string,number,null,undefined,boolean,object


类型检测

在开发中难免会遇到类型检测,以下就是常用一些方法

typeof: typeof可以检测基本类型

typeof 3 // "number"
typeof "蛋蛋君" // "string"
typeof {} // "object"
typeof true // "boolean"
typeof undefined // "undefined"
typeof function(){} // "function"

但是使用typeof检测null的时候会返回Object。所以若不是检测null则使用typeof

instanceof: instanceof是通过原型链进行检测类型的,所以可以检测自定义类型但是不能检测基本类型

function Animal(){} // 自定义类型检测
var animal = new Animal();
console.log(animal instanceof Animal); // true

var date = new Date(); // 内置对象检测
var array = new Array(); // 内置对象检测
console.log(date instanceof Date);  // true
console.log(array instanceof Array); // true

toString: toString会将当前对象转为字符串输出

export function generalTypeOf(obj) {
     const toString = Object.prototype.toString;
     const result = toString.call(obj);

     const type = result.split(' ')[1].slice(0,-1).toLowerCase();
     return type;
}

generalTypeOf(null); // null
generalTypeOf(3); // number
var arr = [1,2,3];
generalTypeOf(arr); // array

使用toString可以检测基本类型和内置类型,但是不能检测自定义类型

个人建议:如果检测自定义类型可以使用instanceof,检测基本类型或者内置类型可以使用toString


JameHou
595 声望10 粉丝

我只想静静地写着代码,和相爱的人平淡的过完一生


« 上一篇
Babel笔记-入门
下一篇 »
JS-OOP(对象)