位置: 编程技术 - 正文

JavaScript中判断对象类型的几种方法总结(javascript中的判断语句)

编辑:rootadmin

我们知道,JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性:

1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串。如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在)。 但 typeof 的能力有限,其对于Date、RegExp类型返回的都是"object"。如:

typeof {}; // "object" typeof []; // "object" typeof new Date(); // "object"

所以它只在区别对象和原始类型的时候才有用。要区一种对象类型和另一种对象类型,必须使用其他的方法。如:instanceof 运算符或对象的 constructor 属。

2)instanceof 运算符。 instanceof 运算符要求其左边的运算数是一个对象,右边的运算数是对象类的名字或构造函数。如果 object 是 class 或构造函数的实例,则 instanceof 运算符返回 true。如果 object 不是指定类或函数的实例,或者 object 为 null,则返回 false。如:

[] instanceof Array; // true [] instanceof Object; // true [] instanceof RegExp; // false new Date instanceof Date; // true

所以,可以用instanceof运算符来判断对象是否为数组类型:

function isArray(arr){ return arr instanceof Array; }

3)constructor 属性。 JavaScript中,每个对象都有一个constructor属性,它引用了初始化该对象的构造函数,常用于判断未知对象的类型。如给定一个求知的值 通过typeof运算符来判断它是原始的值还是对象。如果是对象,就可以使用constructor属性来判断其类型。所以判断数组的函数也可以这样写:

function isArray(arr){ return typeof arr == "object" && arr.constructor == Array; }

很多情况下,我们可以使用instanceof运算符或对象的constructor属性来检测对象是否为数组。例如很多JavaScript框架就是使用这两种方法来判断对象是否为数组类型。 但是检测在跨框架(cross-frame)页面中的数组时,会失败。原因就是在不同框架(iframe)中创建的数组不会相互共享其prototype属性。例如:在Ajaxian上看到了一种精确的检测方法,跨原型链调用toString()方法:Object.prototype.toString()。可以解决上面的跨框架问题。 当Object.prototype.toString(o)执行后,会执行以下步骤: 1)获取对象o的class属性。 2)连接字符串:"[object "+结果(1)+"]" 3)返回 结果(2) 例如:

Object.prototype.toString.call([]); // 返回 "[object Array]"Object.prototype.toString.call(/reg/ig); // 返回 "[object RegExp]"

这样,我们就可以写一个健壮的判断对象是否为数组的函数:此种方法得到国外多个javaScript大师的认可,在即将发布的jQuery 1.3中将使用这种方法来检测数组。 prototype.js的一个维护者写了下面这个函数,用于获取对象的类型名

推荐整理分享JavaScript中判断对象类型的几种方法总结(javascript中的判断语句),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript中判断对象类型的几种方法总结(javascript中的判断语句)

文章相关热门搜索词:javascript 判断,javascript中判断数据类型,js判断数值,javascript中判断数据类型的几种方法,javascript中判断数据类型,javascript 判断,javascript中判断数据类型,javascript中判断数据类型的几种方法,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript splice()方法详解 定义和用法splice()方法用于插入、删除或替换数组的元素。语法arrayObject.splice(index,howmany,element1,.....,elementX)参数描述index必需。规定从何处添加/删除元素

js hover 定时器(实例代码) $("#showComptr:not('.stlisttitle')").hover(function(){try{if($("#calendarPanel").is(":visible"))$(".playerlist").hide();else{clearTimeout(timMess);$(".playerlist").css("top",$(this).offset().top-$(".c

HTTP 错误的详细讲解 NotModified客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓

标签: javascript中的判断语句

本文链接地址:https://www.jiuchutong.com/biancheng/373638.html 转载请保留说明!

上一篇:javascript中怎么做对象的类型判断(javascript中怎么创建一个数组)

下一篇:JavaScript splice()方法详解

  • 进项税额转出会计分录月末如何结转
  • 年度企业所得税会计分录怎么做
  • 印花税计入税金及附加吗
  • 个税退税需要交税吗
  • 其他货币资金的科目编码
  • 小规模纳税人收到专票后如何处理
  • 未达起征点销售额,11栏怎么填写
  • 租房专项扣除有上限吗
  • 教育培训机构内账会计
  • 增值税负数申报监控
  • 农副产品收购发票税率是多少
  • 向境外分派红利怎么计算缴纳企业所得税
  • 车间一般性耗用材料会计分录
  • 红字通知单撤销后系统还能查到吗
  • 货运代理公司排名前十
  • 房屋租赁费属于什么会计分录
  • 电子发票如何打印清单明细
  • 企业所得税申报流程图
  • 进项税核定扣除试点
  • 个人房源可以委托别人吗
  • 公车保险费可以抵扣吗
  • 案例分析关于团员青年的思想困惑疏导和成长问题释疑
  • 小规模季度超过30万怎么填报增值税
  • 长期待摊费用无发票怎么处理
  • 当月认证下月抵扣
  • 关税税率表包括哪些税种
  • 其他应付款在贷方,借方是什么科目
  • 职工福利费要申报吗
  • 房产免租期间缴纳房产税吗
  • 接受捐赠后会引起
  • 公司注销注销顺序
  • 按键盘不起作用怎么办
  • 税务稽查补缴增值税税款的账务处理
  • 建筑业增值税会计核算是哪门课的内容
  • 普通发票的进项票怎么做分录
  • linux shell语句
  • 补充协议是否缴纳印花税
  • 股权转让定金怎么退回
  • hbuilderx怎么运行代码
  • 公司收到预付款怎么用处去
  • wordpress功能介绍
  • 小规模年底税金怎么做账
  • 建筑企业总包方都有哪些印花税
  • php 序列化函数
  • 农村个体户需要报税吗
  • 未认证用户是什么意思
  • 应收账款属于会计要素中的什么科目
  • spring boot怎么学
  • 会计中的一级科目是什么意思
  • python 概率分布函数
  • mysql数据库操作中,use是用来做什么的?
  • 暂估成本账务处理办法
  • 小规模减免的增值税要交所得税吗
  • 员工购买口罩会计科目
  • 无形资产减值准备借贷
  • 加班费是计入应交税费吗
  • 减免的应付账款如果入账
  • 非营利性代收代缴税款
  • 汇算清缴后多交的企业所得税能退吗
  • 增值税相关的问题
  • 现金支票取现的法律规定
  • 失控发票已补税及滞纳金后还有事吗
  • 装饰公司购买的安装服务怎么入账
  • xtrabackup备份原理
  • windowxp操作系统
  • 进程lsass.exe
  • linux模块的概念
  • 一键快速关机下载手机版
  • 如何解决老电脑卡顿问题
  • win7调整视觉效果
  • node.js gui
  • [置顶] 汉诺塔的原理剖析以及递归的解决办法
  • javascript教程chm
  • python中求最大值和最小值的函数
  • eclipse怎么写python程序
  • JQuery 设置checkbox值二次无效的解决方法
  • 发票上的税务号
  • 个人所得税工资扣税标准
  • 自然人扣缴端怎么申报个税
  • 跨市变更税务登记要多久
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设