跳到主要内容

类型检测

2023年02月10日
柏拉文
越努力,越幸运

一、通过 typeof 检测


console.log(typeof 1); // number
console.log(typeof 1); // string
console.log(typeof true); // boolean
console.log(typeof undefined); // undefined
console.log(typeof null); // object
console.log(typeof NaN); // number
console.log(typeof {}); // object
console.log(typeof []); // object
console.log(typeof function (){}); // function

二、通过Object.prototype.toString.call()检测


通过slice

function typeOf (x){
return Object.prototype.toString.call(x).slice(8,-1).toLowerCase();
}

console.log(typeOf(1)); // number
console.log(typeOf('1')); // string
console.log(typeOf(true)); // boolean
console.log(typeOf(undefined)); // undefined
console.log(typeOf(null)); // null
console.log(typeOf(NaN)); // number
console.log(typeOf({})); // object
console.log(typeOf([])); // array
console.log(typeOf(function (){})); // function

通过replace

function getType(data) {
return Object.prototype.toString
.call(data)
.replace(/^\[object (.*)\]/, "$1")
.toLowerCase();
}

const num = 3;
console.log(getType(num) === "number");