对存在JavaScript隐式类型转换的四种情况的总结(必看篇)

发布时间 - 2026-01-11 03:02:26    点击率:

一般存在四种情况,JavaScript会对变量的数据类型进行转换。

目录

* if中的条件会被自动转为Boolean类型
 * 会被转为false的数据
 * 会被转为true的数据
* 参与+运算都会被隐式的转为字符串
 * 会被转为空字符串的数据
 * 会被转为字符串的数据
 * 会被转为数据类型标记的数据
* 参与*运算都会被隐式的转为数字
 * 会被转为0的数据
 * 会被转为1的数据
 * 会被转为NaN的数据
* == 运算符
 * 为true的时候
 * 为false的时候

if中的条件会被自动转为Boolean类型

会被转为false的数据

if(false) console.log(2333)
if('') console.log(2333)
if(null) console.log(2333)
if(undefined) console.log(2333)
if(NaN) console.log(2333)

会被转为true的数据

if(true) console.log(2333) // 2333
if('test') console.log(2333) // 2333
if([]) console.log(2333) // 2333
if({}) console.log(2333) // 2333

参与+运算都会被隐式的转为字符串

会被转为空字符串的数据

'str-' + '' // str-
'str-' + []

会被转为字符串的数据

'str-' + '1' // "str-1"
'str-' + 1 // "str-1"
'str-' + false // "str-false"
'str-' + true // "str-true"
'str-' + null // "str-null"
'str-' + undefined // "str-undefined"
'str-' + NaN // "str-NaN"

会被转为数据类型标记的数据

'str-' + {} // "str-[object Object]"
'str-' + {a:1} // "str-[object Object]"

参与*运算都会被隐式的转为数字

会被转为0的数据

2 * '' // 0
2 * [] // 0
2 * false // 0

会被转为1的数据

2 * '1' // 2
2 * [1] // 2
2 * true // 2

会被转为NaN的数据

2 * {} // NaN
2 * {a:1} // NaN

== 运算符

为true的时候

0 == false // true
0 == '' // true
0 == '0' // true
0 == [] // true
0 == [0] // true

1 == true // true
1 == '1' // true
1 == [1] // true

[1] == true // true
[] == false // true

为false的时候

0 == {} // false
0 == null // false
0 == undefined // false
0 == NaN // false

1 == {} // false
1 == null // false
1 == undefined // false
1 == NaN // false

[] == [] // false
[1] == [1] // false
[1] == {} // false
[1] == {a:1} // false
[1] == false // false
[1] == null // false
[1] == undefined // false
[1] == NaN // false

{} == {} // false
{a:1} == {a:1} // false

注:空数组[],在+运算符下是转为空字符串'',在*运算符下是转为数字0。但在if语句中,则转为true。

以上这篇对存在JavaScript隐式类型转换的四种情况的总结(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# js隐式类型转换  # 浅析JavaScript中的隐式类型转换  # JavaScript隐式类型转换  # 总结Javascript中的隐式类型转换  # JavaScript中运算符规则和隐式类型转换示例详解  # JS面试题大坑之隐式类型转换实例代码  # 有趣的JavaScript隐式类型转换操作实例分析  # JavaScript隐式类型转换代码实例  # JavaScript隐式类型转换例子总结  # JavaScript 隐式类型转换规则详解  # JS不同运算符下隐式类型转换的实现示例  # 隐式  # 运算符  # 给大家  # 四种  # 空字符串  # 但在  # 希望能  # 会对  # 这篇  # 必看  # 小编  # 大家多多  # xhtml  # brush  # class  # true  # false  # Boolean  # JavaScript  # log 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JS碰撞运动实现方法详解  大连网站制作公司哪家好一点,大连买房网站哪个好?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel如何使用Blade组件和插槽?(Component代码示例)  潮流网站制作头像软件下载,适合母子的网名有哪些?  Python数据仓库与ETL构建实战_Airflow调度流程详解  再谈Python中的字符串与字符编码(推荐)  Laravel如何优化应用性能?(缓存和优化命令)  Laravel怎么为数据库表字段添加索引以优化查询  如何在搬瓦工VPS快速搭建网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  香港服务器租用费用高吗?如何避免常见误区?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何在IIS中新建站点并配置端口与IP地址?  如何快速搭建高效香港服务器网站?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  微信小程序 input输入框控件详解及实例(多种示例)  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  想要更高端的建设网站,这些原则一定要坚持!  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  如何快速重置建站主机并恢复默认配置?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何在Tomcat中配置并部署网站项目?  如何撰写建站申请书?关键要点有哪些?  如何正确选择百度移动适配建站域名?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  网站制作软件免费下载安装,有哪些免费下载的软件网站?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel如何实现多对多模型关联?(Eloquent教程)  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  zabbix利用python脚本发送报警邮件的方法  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Laravel如何处理表单验证?(Requests代码示例)  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何用花生壳三步快速搭建专属网站?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?