为什么[] == false 为true
2024-10-22 02:55:11
首先要讲一下js的数据类型分为:
1、基本数据类型(原始数据类型):String、Boolean、Number、null、undefined、Symbol
2、引用数据类型:Object、Array、Function
先从基础的比较: '' == false; // true
因为''空字符串是基本数据类型,在比较的时候会进行隐式转换,Number('')为0,而0 == false 就为true了;
再来看复杂的 [] == false; // true
[]是引用数据类型,不能进行隐式转换,就会调用它的toString()方法,[].toString() 就为 '' 空字符串,空字符串再进行比较,又会像上面一样进行隐式转换Number(''),为0,
0 == false 成立
而 null == 0 // false 原因是null在设计上不尝试转换,也就是说没有尝试用Number(),我也觉得很奇怪为什么js要这么设计。
最新文章
- matlab初学之textread
- TINYINT,SMALLINT,MEDIUMINT,INT,INTEGER,BIGINT;text,longtext,mediumtext,ENUM,SET等字段类型区别
- 关于Beta分布、二项分布与Dirichlet分布、多项分布的关系
- WP8.1 Study18:动态磁贴
- linux命令每日一练习-pwd,cd
- jQuery无缝循环开源多元素动画轮播jquery.slides插件
- svn 规范apk的生成命名
- WordPress RokStories插件‘thumb.php’多个安全漏洞
- PowerDesigner跟表的字段加注释
- APCS
- Dota兄订餐——静态代理(java)
- 阿里云Linux服务器挂载硬盘分区
- Cookie、Session、jsp、EL、JSTL
- TestLink-Windows安装教程
- javascript数据类型和常用内置对象(重要!)
- java多线程系列6 synchronized 加强版 ReentrantLock
- CodeForces892E 可撤销并查集/最小生成树
- C语言实现栈(顺序存储方式)
- Java [Leetcode 387]First Unique Character in a String
- css常用属性总结之 id和class的区别,使用类还是ID?