位置: 编程技术 - 正文

简单介绍JavaScript数据类型之隐式类型转换(简单介绍中秋节)

编辑:rootadmin

推荐整理分享简单介绍JavaScript数据类型之隐式类型转换(简单介绍中秋节),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:简单介绍自己的名字由来,简单介绍自己的名字由来,简单介绍javascript,简单介绍javascript中常用的三种流程控制语句,简单介绍javascript,简单介绍春节的风俗,简单介绍javascript中常用的三种流程控制语句,简单介绍自己的名字由来,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object。object是引用类型,其它的五种是基本类型或者是原始类型。我们可以用typeof方法打印来某个是属于哪个类型的。不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。。

本章节单独介绍一下javascript中的隐式数据类型转换,对于它的良好掌握,在实际应用能够简化很多操作。

看如下代码实例:

上面的代码就是将数组隐式转换为字符串的一个操作,是不是要比下面的方式要简单不少:

像上面类似的隐式数据类型转换在实际编码中应用很多,下面进入正题。

一.值类型之间的数据类型转换:

javascript中的数据类型可以参阅javascript数据类型详解一章节。

(1).数字和字符串使用+运算符:

数字和字符串如果使用+运算符进行操作,那么会将数字先转换为字符串,然后进行字符串连接操作:

(2).布尔值参与的+运算符操作:

如果有布尔型参与,那么首先会将布尔值转换为对应的数字或者字符串,然后再进行相应的字符串连接或者算数运算。

上面的代码是先将true转换为数字1,然后再进行算数加运算。

上面的布尔值会被转换为对应的字符串形式"true",然后再进行字符串连接。

(3).减法操作:

如果进行减法操作,那么两个操作数都会先被转换为数字,然后在进行算数运算:

true会被转换为数字1,字符串"8"会被转换为数字8,然后进行算术运算。

乘,除,大于,小于跟减的转换也是一样,就不再举例子了。

(4).==等性运算:

undefined和null比较特殊,它们两个使用==运算符返回值是true。

其他值类型进行比较的时候都会将运算数转换为数字

上面的代码会将字符串"3"转换成数字,然后再进行比较。

上面的代码会分别将"1"和true转换成数字,然后进行比较。

二.引用类型转值类型:

简单介绍JavaScript数据类型之隐式类型转换(简单介绍中秋节)

引用类型(对象)转换为值类型则要复杂很多,下面分布展开介绍。

对象继承的两个方法可以帮助我们实现对象到值类型的转换功能:

(1).toString()方法。

(2).valueOf()方法。

通常情况下我们认为,将一个对象转换为字符串要调用toString()方法,转换为数字要调用valueOf()方法,但是真正应用的时候并没有这么简单,看如下代码实例:

从上面的代码可以看出,toString()方法并没有将对象转换为一个能够反映此对象的字符串。

从上面的代码可以看出,valueOf()方法并没有将对象转换为能够反映此对象的一个数字。

数组对象的toString()方法能够将数组转换为能够反映此数组对象的字符串。

总结如下:

(1).有些对象只是简单继承了toString()或者valueOf()方法,比如第一个例子。(2).有些对象则不但是继承了两个方法,而且还进行了重写。

所以有些对象的方法能够达成转换成字符串或者数字的目标,有些则不能。

调用toString()或者valueOf()将对象转换成字符串或者数字的规则如下:

调用toString()时,如果对象具有这个方法,则调用此方法;如果此方法返回一个值类型数据,那么就返回这个值类型数据,然后再根据所处的上下文环境进行相关数据类型转换。如果没有toString(),或者此方法返回值并不是一个值类型数据,那么就会调用valueOf()(如果此方法存在的话),如果valueOf()返回一个值类型数据,那么再根据所处的上下文环境进行相关的数据类型转换。

进一步说明:

(1).上面介绍了通常默认情况下valueOf()和toString()方法的作用(将对象转换为数字或者字符串),但是需要注意的是,这并不是硬性规定,也就是说并不是valueOf()方法必须要返回数字或者toString()方法必须要转换为字符串,比如简单继承的这两个方法就无法进行实现转换为数字和字符串的功能,再比如,我们可以自己称谢这两个方法,返回值也没有必要是数字或者字符串。

(2).还有需要特别注意的一点就是,很多朋友认为,转换为字符串首先要调用toString()方法, 其实这是错误的认识,我们应该这么理解,调用toString()方法可以转换为字符串,但不一定转换字符串就是首先调用toString()方法。

看如下代码实例:

上面的代码中,arr是要被转换为字符串的,但是很明显是调用的valueOf()方法,而没有调用toString()方法。有些朋友可能会有这样的质疑,难道[2]这样的数字转换成字符串"2",不是调用的toString()方法吗。

代码如下:

其实过程是这样的,首先arr会首先调用valueOf()方法,但是数字的此方法是简单继承而来,并没有重写(当然这个重写不是我们实现),返回值是数组对象本身,并不是一个值类型,所以就转而调用toString()方法,于是就实现了转换为字符串的目的。

总结如下:

大多数对象隐式转换为值类型都是首先尝试调用valueOf()方法。但是Date对象是个例外,此对象的valueOf()和toString()方法都经过精心重写,默认是调用toString()方法,比如使用+运算符,如果在其他算数运算环境中,则会转而调用valueOf()方法。

代码实例如下:

以上内容是小编给大家介绍的JavaScript数据类型之隐式类型转换的全部内容,希望大家喜欢。

JavaScrip常见的一些算法总结 下面就简单列举一下javascript中常见的一些算法,需要的朋友可以做一下参考。当然这些算法不仅仅适用于javascript,同样也适用于其他语言。一.线性查

一种新的javascript对象创建方式Object.create() Object.create()是什么?Object.create(proto[,propertiesObject])是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数,可以传一个

原生js配合cookie制作保存路径的拖拽 主要是运用了原生js封装了一个cookie,然后使用了三个事件做拖拽,分别是onmousedown,onmousemove,onmouseup,这三个事件其中两个需要添加事件对象,也就

标签: 简单介绍中秋节

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

上一篇:Bootstrap导航栏各元素操作方法(表单、按钮、文本)(bootstrap导航栏怎么居中)

下一篇:JavaScrip常见的一些算法总结(javascrapt)

  • 没房分手的多吗
  • 捐赠支出需要什么手续
  • 营改增之前的工程造价怎么算
  • 残疾人加计扣除政策文件
  • 新企业第一次报所得税
  • 接受现金捐赠怎么写分录
  • 进项转出发票是否还可以转回抵扣做分录呢?
  • 一年内到期的非流动负债包括哪些科目
  • 公司挂靠有资质的企业公司会计处理
  • 年内累计增量和年度增量计算公式
  • 没在公司交社保遣散的怎么赔偿
  • 前期工程费如何分摊
  • 账本印花税怎么缴纳
  • 银行直接扣的手续费怎么记账
  • 当期净资产收益率怎么算
  • 小规模企业房产税怎么算
  • 合同资产减值准备对应科目
  • 销售不动产预收款纳税义务发生时间
  • 企业的其他业务收入包括
  • 本月暂估入库,下月
  • 财务杠杆系数简单计算方法
  • 季度申报的小规模纳税人怎么查看销售额达到500万
  • 技术转让免征增值税文件
  • 建筑劳务公司开票税率是多少
  • 退付手续费怎么操作
  • 公司必须开基本户才能开发票吗
  • 幼儿园会计做账实操
  • 投资收益亏损后会怎么样
  • 预付账款退款怎么做会计分录
  • 其他综合收益包括留存收益吗
  • PHP:pg_version()的用法_PostgreSQL函数
  • 非经营业务
  • php字符串转浮点型
  • 政府划入资产会计处理
  • 为什么要把收入当成舞弊假定
  • 企业购入设备涉及的税种
  • 最快超级计算机我国
  • SwinIR实战:详细记录SwinIR的训练过程
  • NovelAi + Webui + Stable-diffusion本地配置
  • 长期待摊费用科目怎么使用
  • 发票内容服务费可以吗?没有明细
  • 新购买的发票如何读取
  • 预提费用会计科目
  • 新办企业装修会计分录
  • 专项储备期末有余额吗
  • 如何把excel数据导入到word表格
  • 个人所得税租房专项扣除标准
  • 进项税额不得抵扣的情况
  • 海关进口增值税专用缴款书
  • 房地产企业实际发生的税金及附加
  • 免税收入不征税收入计入收入总额吗
  • 怎么计算土地增值税收入
  • 二手市场机械设备
  • 重大水利工程建设
  • 研发费用加计扣除2022政策
  • 金蝶银行存款日记账
  • 总分类账户与明细分类账户是对账户按照其
  • 资本公积金什么时候提取
  • 私人银行卡给公司走账有影响吗
  • sql根据逗号分割数据
  • 安装office提示
  • xp系统安装软件参数不正确怎么解决
  • centos搭建svn服务器
  • freebsd重置密码
  • xp系统无法安装win7系统
  • 在linux系统中
  • win10自带邮箱无法使用126
  • 原生javascript开发
  • ercp后淀粉酶为什么升高
  • cocos2d用什么语言开发游戏
  • linux如何创建守护进程
  • bat脚本%1
  • python time模块日期运算
  • html加载条代码
  • 响应鼠标变换表怎么用
  • 人力资源差额发票
  • 工商跟税务的区别
  • 税务局要求补上年房租开票
  • 广东电子税务局财务报表在哪里查询
  • 逆光代售和神仙代售那个好一点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设