当前位置: 首页 > news >正文

为什么 2!=false 和 2!=true 返回的都是true

前言

今天突然想起一个奇怪的问题,记录一下,我在控制台执行内容如下:

image-20240821171734282

由上图可见,2 != false2 != true 返回的值竟然都是true,那么为什么呢,请看下文:

1 != 操作符的作用

  • != 是“不等于”操作符。它会在比较前执行类型转换,然后再比较两个值是否不相等。

    在 JavaScript 中,2 != false2 != true 返回 true 的原因涉及到 JavaScript 中的类型转换和比较规则。

2 类型转换

当使用 != 进行比较时,JavaScript 会尝试将比较的两个值转换为相同的类型,然后再进行比较。以下是 2 != false2 != true 的过程:

2 != false
  1. false 会被转换为数字类型。根据 JavaScript 的转换规则,false 被转换为 0
  2. 现在表达式变成了 2 != 0
  3. 20 不相等,因此返回 true
2 != true
  1. true 会被转换为数字类型。根据 JavaScript 的转换规则,true 被转换为 1
  2. 现在表达式变成了 2 != 1
  3. 21 不相等,因此返回 true

总结

  • 2 != false 返回 true 是因为 20 不相等。
  • 2 != true 返回 true 是因为 21 不相等。

这就是为什么 2 != false2 != true 都会返回 true

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java-IO:浅谈对IO的认识
  • 【大规模语言模型:从理论到实践】Transformer中PositionalEncoder详解
  • java 给list对象根据给定条数进行分组工具类
  • 视频中的噪点怎么去除?
  • ES之三:springboot集成ES
  • JavaScript基础面试题:(第二天)
  • 搞定JavaScript异步原理,深入学习Promise
  • 什么是TypeScript?
  • python测试开发基础---multiprocessing.Pool
  • 机器人笛卡尔空间轨迹规划原理与MATLAB实现
  • OpenXR Monado compositor处理应用layers(cheduled->delivered)
  • 深入掌握 Go 语言中的数值类型与循环技巧
  • Gitlab删除本地标签和分支
  • 【操作系统原理】第三章——进程线程模型(上)
  • 【Python 千题 —— 算法篇】重复字符查找
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CSS 专业技巧
  • express + mock 让前后台并行开发
  • magento 货币换算
  • Python实现BT种子转化为磁力链接【实战】
  • scala基础语法(二)
  • spring security oauth2 password授权模式
  • Terraform入门 - 1. 安装Terraform
  • Unix命令
  • vagrant 添加本地 box 安装 laravel homestead
  • v-if和v-for连用出现的问题
  • vue中实现单选
  • Webpack入门之遇到的那些坑,系列示例Demo
  • win10下安装mysql5.7
  • 初识MongoDB分片
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 区块链共识机制优缺点对比都是什么
  • 听说你叫Java(二)–Servlet请求
  • 详解NodeJs流之一
  • 最简单的无缝轮播
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​第20课 在Android Native开发中加入新的C++类
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # wps必须要登录激活才能使用吗?
  • #QT(一种朴素的计算器实现方法)
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (10)STL算法之搜索(二) 二分查找
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (四)js前端开发中设计模式之工厂方法模式
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • **PHP分步表单提交思路(分页表单提交)
  • .bat批处理(九):替换带有等号=的字符串的子串