位置: 编程技术 - 正文

举例讲解如何判断JavaScript中对象的类型(举例说明什么是判断)

编辑:rootadmin

推荐整理分享举例讲解如何判断JavaScript中对象的类型(举例说明什么是判断),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:判断的方法,举例讲解如何判断正负,举例说明什么是判断,判断的方法,简单判断举例,简单判断举例,举例讲解如何判断正负,举例讲解如何判断正负,内容如对您有帮助,希望把文章链接给更多的朋友!

在编写js程序的过程中,可能常常需要判断一个对象的类型,例如你写了一个函数,需要通过判断不同的参数类型来编写不同的代码。首先可能会想到typeof操作符,看下面的这个例子:

得到的结果如下:

从上面的结果可以看到,用typeof操作符可以显示对象的类型,那么typeof操作符作用域null和undefined的结果会是什么呢?

typeof 操作符作用于null居然显示”object“(这个好像不科学,我还以为会显示”null'“),作用于undefined显示”undefined“(这个符合我们希望的结果),所以当用typeof操作符来判断一个对象的类型时,特别要小心,因为这个对象有可能是null。上面只是给了一部分typeof作用于这些对象的结果,下面的表列出了typeof操作符作用于Boolean, Number, String, Array, Date, RegExp, Object, Function, null, undefined的结果(有兴趣的读者可以自行测试):

从上表的结果可以看出Array, Date, RegExp显示的都是object,为什么不是直接的显示对象的类型呢?这就要引出js的另外一个操作符了:instanceof操作符,这个操作符用来判断一个对象是否为某种类型的对象,计算的值为true或者false。先来看下:

举例讲解如何判断JavaScript中对象的类型(举例说明什么是判断)

很显然通过这个instanceof是能判断对象的类型的,但是这个只能判断除了基本类型(包含String类型)的其它类型,他是不能判断基本类型的。但是instanceof不是总是能正常判断的,考虑一个框架的情形,要判断其类型的对象是另外一个frame传递过来的对象,首先来看下下面的例子。main.html

frame1.html

frame2.html

names对象是在frame1框架中的,此时是通过frame1框架的Array来创建的,如果把names对象拿到frame2中的Array作比较,很显然names不是frame2中的Array的实例,以为frame1和frame2压根就不是同一和Array,从第2个现实结果可以很明显的看出names是他本身所在的frame的实例,从第3个输出可以看出frame1的Array和frame2的Array是不同的。那么遇到上面这种跨frame的比较该怎么办呢?我们总不能每次都拿框架对应的Array来做比较吧,有一种必须的办法可以解决上面的问题,看下面的代码:

{}.toString表示获取Object对象上的toString方法(这个方法时Object对象的基本方法之一),toString.call(now)表示调用toString方法。调用Date对象最原生的toString()(这个方法是Object上面的方法)方法可以显示[object Date]类型的字符串,假如是Array,则会产生[object Array]的字样,也就是说进行上面的操作会显示类似[object Class]的字样,那么我们只要判断这个字符串不就可以知道其类型了吗?由此可以写出如下的工具类:tools.js

tools提供了type,isArray,isFunction等方法用来判断对象的类型,根据实际的需要可以自己添加需要判断类型的方法。type接受一个obj参数,它将对象的实际类型以小写的形式返回,比如你的需要判断对象的类型是Array,那么此方法将会返回array.根据上面提供的工具类,再重新改写上面的例子:fram2.html

至此通过上面的根据类就可以很容易的判断对象的类型了。注意:在IE中例如像alert这样的元素是不能判断的。

javascript中this指向详解 JavaScript是一种脚本语言,支持函数式编程、闭包、基于原型的继承等高级功能。JavaScript一开始看起来感觉会很容易入门,但是随着使用的深入,你会发

探寻JavaScript中this指针指向 探寻JavaScript中this指针指向首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最

javascript学习指南之回调问题 回调地狱对JavaScript程序员来说,处理回调是家常,但是处理层次过深的回调就没有那么美好了,下面的示例代码片段用了三层回调,再补脑一下更多层

标签: 举例说明什么是判断

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

上一篇:js创建jsonArray传输至后台及后台全面解析(jsonarray fromobject)

下一篇:javascript中this指向详解(js里的this指向)

  • 免抵退税办法不得抵扣的进项税额的会计处理
  • 怎么下载税控盘开票软件
  • 月初没报完税可以开票吗
  • 营业账簿印花税怎么交
  • 盈余公积的作用与意义
  • 印花税5元贴花会计处理
  • 上期有留抵进项税额,本期如何转,如何做账
  • 应交税费增值税明细账
  • 进口增值税抵扣信息委托核查函
  • 其他货币资金包括的内容有
  • 增值税月末结转摘要写什么
  • 应缴国库款和应交税款
  • 所税税汇算补交上一年度税金如何做账务处理?
  • 剩余材料入库的会计分录怎么做?
  • 外购商品赠送给顾客
  • 企业所得税属于什么科目
  • 西安的税务局
  • 小规模企业季度超过30万,怎么收取增值税
  • 喷绘制作费的税率
  • 红冲发票地址不一样可以吗
  • 税负率一般控制在多少合适
  • 个人销售自己使用过的物品免征增值税
  • 栈定义代码
  • linux增加inode
  • 若依框架搭建
  • h5适配iphonex
  • 技术转市场到底是不是个正确的选择
  • 如何申请办理港澳通行证
  • 如何设置长期有效的群二维码安卓手机
  • arcore如何使用
  • 用流程图的形式写出视觉的形成过程
  • 原材料用于在建工程增值税如何处理
  • 工业企业采购商品过程中发生的进货费用
  • phpcms开发手册
  • 所有者权益合计等于什么
  • 购买商品发生的费用计入
  • 固定资产清理产生的费用入什么科目
  • 社保基数怎么申请下调
  • 织梦数据库连接失败的原因
  • 出纳人员收取现金合法吗
  • PureFTP借助MySQL实现用户身份验证的操作教程
  • c语言指针妙用
  • 其他收益算营业收入吗
  • 资产负债表中没有专项储备怎么填写
  • sqlserver2008安装步骤图文
  • 公司基本账户提额怎么算
  • 哪些支出可以在出国公杂费中扣除
  • 收到的货款比实际货款多
  • 财务分析与财务管理的共同点
  • 发生了销售交易但没有在销售日记
  • 外币资本金入账汇率怎样选择
  • 应收账款有什么
  • 体检费用开发票给公司怎么开
  • 工会经费以前没交现在怎么补交
  • 原始凭证填制的基本内容
  • 不含税价换算成含税价怎么算
  • 新准则房地产企业收入确认时间
  • mysql检查表是否存在
  • sqlserver复制表语句
  • mysql 5.7.18 winx64密码修改
  • 苹果发布会最新消息
  • win10网络身份验证失败
  • linux yum命令详解
  • win1020h2正式版下载
  • fpassist.exe是什么进程 有什么作用 fpassist进程查询
  • windows10右键菜单
  • linux软件少
  • win10升级补丁位置
  • win7笔记本触摸板怎么开启
  • yarn使用教程
  • iframe transparent透明背景方法
  • settimeout和setinterval在安卓机无效
  • javascriptweb
  • 安卓手机管家在哪里打开
  • 开发日记3雷火剑
  • javascript如何学
  • 猫猫的娱乐
  • js中数组排序sort的用法
  • 如何查询车辆购置税发票
  • 国家税务局总局河南官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设