JS隐式转换_隐式转换是什么

JS隐式转换_隐式转换是什么在什么条件下会触发隐式转换机制?在进行比较运算,或者进行四则运算时,常常会触发JS中的隐式转换机制。首先要记住JS设计者的初衷是美好的,他希望==是美好的操作选择,但是在美好的希望也是希望。小案例为什么[]==false?类型不同比较时,需要先做类型转换,==比较时有布尔值参与时,需要比较双方均转为数字,[]是非原值,需要转换为原值二者才能进行比较,大部分对象转换为…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在什么条件下会触发隐式转换机制?

在进行比较运算,或者进行四则运算时,常常会触发JS中的隐式转换机制。

首先要记住JS设计者的初衷是美好的,他希望 == 是美好的操作选择,但是在美好的希望也是希望。

小案例

  1. 为什么 [] == false ?

    类型不同比较时,需要先做类型转换,==比较时有布尔值参与时,需要比较双方均转为数字,[ ]是非原值,需要转换为原值二者才能进行比较,大部分对象转换为原值最后都是调用的toString方法,[] –> toString() —> ‘’,当字符串和数字比较时,会把字符串转换为数字,而空字符串转换为数字结果是0,而 0 == 0,所以结果为true

  2. 为什么NaN !== NaN?

    这是隐式转换的一个很大的弊端,es6的includes方法可以检测出NaN等于NaN,这是一大进步

  3. null == 0 结果为false

    这时候两边的类型也不同,但是却没有做类型转换,why?因为这时候二者都已经是基本数据类型了,没有办法在进行转换了,所以二者的类型都不可能相同,结果自然为false

  4. 为什么null == undefined 结果为true

    这是一种规定
    if x is null and y is undefined, return true
    if y is null and x is undefined, return true

  5. 为什么 !![] = true

    这里并没有涉及 == 比较,只需要判断 [] 是true还是false即可

注意,字符串转换为数字调用的是Number方法,NaN也是数字,某些方面来说布尔类型也属于一种int类型

隐式转换的最大弊端

NaN不等于NaN

几种为false的情况,只要不是这几组值,结果均为true

0,’’,NaN,false,null,undefined

涉及隐式转换最多的两个运算符

+ ,==

三种隐式转换

1、将值转为原始值
2、将值转为数字
3、将值转为字符串

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183231.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月11日 上午11:00
下一篇 2022年10月11日 上午11:00


相关推荐

  • FTP客户端设计与实现

    FTP客户端设计与实现互联网的一大特点是实现信息共享 文件传输是信息共享的十分重要的内容之一 随之出现了许多 FTP 服务器来共享一些信息资源 编写一个操作简单 方便的 FTP 客户端来下载这些资源受到了人们的极大欢迎 FTP 客户端软件是在了解 FTP 工作原理后 利用 C 语言来设计和开发的 FTP 客户端分为连接模块 文件管理模块 文件传输模块和辅助管理模块 连接模块实现主机与服务器的连接的功能 文件管理模块实现新建文件 删除文件等功能 文件传输模块实现主机与服务器连接成功后上传和下载文件功能 辅助管理模块实现一些相关功能如 读写配置 I

    2026年3月26日
    1
  • 科大讯飞查看是否激活?小白必看,手把手教你正确姿势,绝绝子!

    科大讯飞查看是否激活?小白必看,手把手教你正确姿势,绝绝子!

    2026年3月14日
    3
  • 《SQLSERVER2012之T-SQL教程》T-SQL单表查询(二)「建议收藏」

    《SQLSERVER2012之T-SQL教程》T-SQL单表查询(二)

    2022年2月22日
    55
  • 几款国产FPGA系列器件参数汇总

    几款国产FPGA系列器件参数汇总以下是和厂商确认以及个人在各公司官网上获取的产品参数 部分产品价格可用作参考 价格实时变动 只能作参考 1 高云半导体 FPGA 器件型号 逻辑查找表 RAM 资源 I O 资源 pll 触发器资源 嵌入式内核 易失性 价格 晨熙系列 GW2A 18 2073

    2026年3月26日
    2
  • C++中getline函数用法

    C++中getline函数用法C 中 getline 函数用法 getline 用于读取一整行字符 遇到回车符即返回 include iostream include string usingnamespa intmain intn cin gt gt n strings getline cin s cout lt string iostream

    2026年3月18日
    1
  • MATLAB自带插值函数

    MATLAB自带插值函数一 interp11 函数简介 MATLAB 中的插值函数为 interp1 其调用格式为 yi interp1 x y xi method 其中 x y 为初始插值点 xi 为给定的插值点 yi 为在被插值点 xi 处的插值结果 method 表示采用的插值方法 MATLAB 提供的插值方法有几种 nearest 是最邻近插值 linear 线性插值 sp

    2025年6月8日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号