【JavaScript】[]和{} 的转换

背景

javascript 复制代码
([])? true:false
({})? true:false
([] == true)? true:false
({} == true)? true:false
([] === true)? true:false
({} === true)? true:false

分析

\]和{ } 都是复杂类型,以上都是三目运算符判断 **1.判断\[ \]和{ } 是否存在** 声明了这些已经分配了内存,肯定是存在的 ```javascript ([])? true:false //true ({})? true:false //false ``` **2.判断\[ \]和{ }和布尔值的转换** * == 含类型转换 * 如果一个操作数是对象,另一个是基本类型,对象首先会被转换为原始值(调用对象的valueOf()方法,返回自身的话就调用toString()方法),再布尔值转换为数字(‌true 转换为 1,‌false 转换为 0)‌ ```javascript ([] == true)? true:false //false //[]调用toString()为'' //''== 1 为false //''== 0 为true ``` ```javascript ({} == true)? true:false //false //'[object Object]' == 1 为false ``` **3.判断\[ \]和{ } === 的转换** * ===不含类型转换,比较的是地址,基本类型是栈,引用类型是堆 ```javascript ([] === true)? true:false //false ({} === true)? true:false //false ``` * 同类型也不相同,每次创建都会开辟一块新内存 ```javascript ([] === [])? true:false //false ({} === {})? true:false //false ```

相关推荐
长安牧笛几秒前
开发课堂学生专注度分析程序,捕捉学生面部表情和动作,分析专注程度,帮助老师调整教学。
javascript
weixin_44811994几秒前
Datawhale Hello-Agents入门篇202512第2次作业
java·前端·javascript
BD_Marathon几秒前
Vue3_事件渲染命令
开发语言·javascript·ecmascript
倔强的小石头_3 分钟前
Python 从入门到实战(十一):数据可视化(用图表让数据 “说话”)
开发语言·python·信息可视化
StudyWinter11 分钟前
【c++】thread总结
开发语言·c++·算法
kaka-33316 分钟前
微信小程序中使用 xlsx(xlsx.mini.min.js)实现 Excel 导入导出功能
javascript·微信小程序·excel
小鸡脚来咯17 分钟前
java泛型详解
java·开发语言
liuyouzhang20 分钟前
备忘-国密解密算法
java·开发语言
北冥有一鲲30 分钟前
LangChain.js:Tool、Memory 与 Agent 的深度解析与实战
开发语言·javascript·langchain
吴佳浩 Alben39 分钟前
Python入门指南(六) - 搭建你的第一个YOLO检测API
开发语言·python·yolo