博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js检测对象的类型
阅读量:5129 次
发布时间:2019-06-13

本文共 893 字,大约阅读时间需要 2 分钟。

在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法.

示例:

var array=[1,2,3];Object.prototype.toString.call(array) ;//"[object Array]"var obj={name:'Tom'};Object.prototype.toString.call(obj) ;//"[object Object]"var string='hi';Object.prototype.toString.call(string) ;//"[object String]"var num=1;Object.prototype.toString.call(num);//"[object Number]"

当然,还有其他方式,不过麻烦了一些。

如typeof,但typeof是测不出被检测的对象是Object(对象)还是Array(数组),因为Object包含了Array,如:

var array=[1,2,3];var obj={name:'Tom'};typeof array;//"object"typeof obj;//"object"

可以看到返回的都是"object"。

instanceof可以像 Object.prototype.toString一样准确地检测js类型。如:

var o=[];  alert(o instanceof Array);//true  alert(o instanceof Object);//true  var f=function(){}  alert(f instanceof Function);//true  alert(f instanceof Object);//true

小结:有简单的就用简单直接的,所以用Object.prototype.toString.call(obj)这个方式就好。

转载于:https://www.cnblogs.com/wql025/p/4979606.html

你可能感兴趣的文章
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>