【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 ```

相关推荐
wuhen_n3 小时前
JavaScript内置数据结构
开发语言·前端·javascript·数据结构
不会代码的小测试3 小时前
UI自动化-POM封装
开发语言·python·selenium·自动化
roman_日积跬步-终至千里3 小时前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
lsx2024064 小时前
C++ 基本的输入输出
开发语言
CodeSheep程序羊4 小时前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
独好紫罗兰4 小时前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
I'mChloe4 小时前
PTO-ISA 深度解析:PyPTO 范式生成的底层指令集与 NPU 算子执行的硬件映射
c语言·开发语言
鹿心肺语4 小时前
前端HTML转PDF的两种主流方案深度解析
前端·javascript
编程小白20264 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
一个懒人懒人4 小时前
Promise async/await与fetch的概念
前端·javascript·html