位置: 编程技术 - 正文

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()方法详解

  • 非税收入票据能否税前扣除
  • 个税漏申报了一个月在哪里申报
  • 个税上个月没报下个月累计会怎么样
  • 公司月底做账大约几天
  • 进项税额转出怎么算
  • 防伪税控服务费怎么算
  • 长期股权投资的交易费用计入哪里
  • 固定资产后续支出资本化条件是什么
  • 保险赔款个人所得税计算
  • 折扣折让 红字发票账务处理
  • 一般纳税人税率2023
  • 收购公司固定资产注意事项
  • 建安费增值税怎么算
  • 残保金申报表怎么作废
  • 增值税需要计提吗
  • 资源税进什么科目
  • 电梯管理费属什么类别
  • 建筑物拆除物资包括哪些
  • 存出保证金的核算内容
  • 可转换债券具有债权和股权双重特征
  • 公司之间债务转让合法吗
  • 超市收取进场费会计分录
  • 库存盘点差异会计分录
  • 抵债资产怎么入账
  • 差旅费报销会计处理
  • 所得税分配表分录怎么写
  • php正则匹配中文
  • 新准则预付账款计算公式
  • 网络安全技术
  • 企业以付费的形式
  • axios发送多个请求
  • 浅谈人工智能时代财务会计向管理会计的转型
  • 待抵扣进项税计入其他应收款
  • php中为什么图片显示不出来
  • 装修费用记什么科目
  • 金税盘v2.0.41怎么扫码开票
  • 给第三方的销售怎么做
  • 事业单位回复短信里的加号要吗
  • pd python
  • 织梦tag标签怎么用
  • 大额医疗保险计入什么科目
  • 水运企业会计核算办法
  • 非盈利组织捐赠物资收入账务处理流程
  • 非营利组织免征企业所得税的通知
  • 资产减值损失应在计算()时扣除
  • 各人所得税法规定
  • 怎么查询mysql sql_mode
  • 工程物资月末必须结转吗
  • 单位举办活动
  • 增值税发票抵扣联丢失怎么办
  • 水电费的会计分录
  • 初级会计实务中国财政经济出版社
  • 金蝶软件中怎么让以前年度损益调整在利润表中取不到数
  • 长期待摊费用的最新账务处理
  • 增值税专用发票的税率是多少啊
  • 上月未记账,本月同样可以记账
  • 知识产权服务费可以计入研发费用吗
  • 财务费用的科目编码是多少
  • 发票监制章是什么章图片
  • 存货的实际成本法
  • 营改增人力资源服务
  • 听妈妈讲那过去的事情讲课
  • 非营利医疗机构有哪些
  • centos7.2安装
  • xp系统任务栏太小怎么办
  • ubuntu系统管理
  • wdcp的/www目录大小调整或增加分区/硬盘的方法
  • win8ui
  • centos7搜索
  • mac系统怎么共享文件夹
  • lnmp php
  • python opencv
  • python伪装请求头
  • python多进程编程
  • jquery easyui validatebox remote的使用详解
  • unity3ds
  • jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
  • 深入理解innodb
  • 上海市浦东新区人民医院
  • 江西鹰潭潭花酒60度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设