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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。