前端判断数据类型的方法有哪些?

1、typeof

(1)返回:一个值的数据类型的字符串

(2)可以判断:一个值的数据类型是 string、number、boolean、object、function 等

(3)无法判断:对于复杂数据类型就不起作用(Array),因为对于复杂数据类型的判断结果也是 object,跟 null 的判断返回结果相同

javascript 复制代码
var o = new Array();
console.log(typeof 1);//number
console.log(typeof 'sxx');//string
console.log(typeof true);//boolean
console.log(typeof undefined);//undefined
console.log(typeof null);//object
console.log(typeof o);//object

2、instanceof

(1)返回:检测一个对象是否 属于某个特定的对象类型

(2)通过使用 instanceof 操作符,你可以判断一个对象是否属于 Array、Date、RegExp 等特定类型,判断简单数据类型,但是简单数据类型不能以字面量的形式创建,否则返回值为false;如果通过new关键字去创建简单数据类型,则返回值为true;null和undefined这两个比较特殊

javascript 复制代码
console.log([] instanceof Array);//true
console.log({} instanceof Object);//true
console.log(function(){} instanceof Function);//true
console.log(1 instanceof Number);//false
console.log('xiaoming' instanceof String);//false
console.log(true instanceof Boolean);//false
console.log('--------------------------------');
console.log(new Number(1) instanceof Number);//true

3、Object.prototype.toString.call

返回一个表示对象的字符串

通过使用 Object.prototype.toString.call() 方法,你可以判断一个值的详细数据类型,如 "[object Object]"、"[object Array]"、"[object Date]" 等

javascript 复制代码
var a = Object.prototype.toString;
console.log(a.call("xiaoming"));//String
console.log(a.call(1));//Number
console.log(a.call(true));//Boolean
console.log(a.call(null));//Null
console.log(a.call(undefined));//Undefined
console.log(a.call([]));//Array
console.log(a.call(function () { }));//Function
console.log(a.call({}));//Object
相关推荐
也无晴也无风雨1 小时前
深入剖析输入URL按下回车,浏览器做了什么
前端·后端·计算机网络
Martin -Tang1 小时前
Vue 3 中,ref 和 reactive的区别
前端·javascript·vue.js
FakeOccupational3 小时前
nodejs 020: React语法规则 props和state
前端·javascript·react.js
放逐者-保持本心,方可放逐3 小时前
react 组件应用
开发语言·前端·javascript·react.js·前端框架
曹天骄4 小时前
next中服务端组件共享接口数据
前端·javascript·react.js
阮少年、4 小时前
java后台生成模拟聊天截图并返回给前端
java·开发语言·前端
郝晨妤6 小时前
鸿蒙ArkTS和TS有什么区别?
前端·javascript·typescript·鸿蒙
AvatarGiser6 小时前
《ElementPlus 与 ElementUI 差异集合》Icon 图标 More 差异说明
前端·vue.js·elementui
喝旺仔la6 小时前
vue的样式知识点
前端·javascript·vue.js
别忘了微笑_cuicui6 小时前
elementUI中2个日期组件实现开始时间、结束时间(禁用日期面板、控制开始时间不能超过结束时间的时分秒)实现方案
前端·javascript·elementui