[] == ! [] 为什么返回 true ?

1. Undefined 、Null、0   比较

null == null;        // true
null == undefined;   // true
+0 == -0;            // true
null == 0;           // false
undefined == 0;      // false

2. NaN   比较

NaN == NaN;     // false  NaN与任何值比较都返回false(包括NaN)

3. 字符串 与 数字  比较

'5' == 5;     // true  字符串 '5' 转换 为 数字 5 进行比较

4. 布尔值 与 非布尔值  比较

true == 1;          // true   布尔值 true 转换 为 数字 1 进行比较
false == '123';     // false  布尔值 false 转换 为 数字 0 与 字符串 '123' 转换 为 数字 123 进行比较

 5.[] == ![] 为甚返回 true ?

经过!运算将等式右边转换成了 false

[] == false

接着,根据==隐式转换规则,等式两边为对象和布尔,那么它们都应该转换为数字进行比较,左侧[]经过ToPrimitive转换为字符串""

"" == false

然后,将等号两边的字符串""和布尔值false转换都成数字 0 。

 0 == 0 

所以,返回 true。

相关推荐

  1. list转成tree返回前端

    2024-02-19 19:28:04       29 阅读
  2. vue本地运行开发,为什么要配置changeOrigin: true

    2024-02-19 19:28:04       53 阅读
  3. el-tree 后端返回的树形结构重命名数据循环

    2024-02-19 19:28:04       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 19:28:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 19:28:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 19:28:04       87 阅读
  4. Python语言-面向对象

    2024-02-19 19:28:04       96 阅读

热门阅读

  1. 面试题-02

    2024-02-19 19:28:04       45 阅读
  2. 浅析SpringBoot中的事务管理

    2024-02-19 19:28:04       58 阅读
  3. 力扣爆刷第74天--动态规划01背包

    2024-02-19 19:28:04       54 阅读
  4. 洛谷P5365 [SNOI2017] 英雄联盟

    2024-02-19 19:28:04       61 阅读
  5. 平台组成-内容管理

    2024-02-19 19:28:04       46 阅读
  6. 鸿蒙应用/元服务开发-窗口概述

    2024-02-19 19:28:04       56 阅读
  7. 链表 -02

    2024-02-19 19:28:04       58 阅读
  8. logback实践

    2024-02-19 19:28:04       42 阅读