专栏名称: 大迁世界
掘金LV8,思否10万+的作者。一个热爱前端的创业者。
今天看啥  ›  专栏  ›  大迁世界

为什么在JavaScript中 [] == ![] 返回 TRUE?

大迁世界  · 公众号  ·  · 2024-09-11 08:35

文章预览

这毫无道理。 一个数组怎么可能不是一个数组呢? [] 是真值,而 ![] 应该是 false 。 那么 [] 怎么可能等于 false 呢? 而且这种情况似乎并不发生在其他类型上,比如字符串和数字: JavaScript的数组是不是坏了? 这里发生了什么 把所有的责任都推给危险的 == 运算符。 这只是我们总是告诉JavaScript新手永远不要使用它(真的永远不要)的又一个例子。 尤其是如果他们之前一直在使用像C#这样固执且严格的语言编程。 乍一看, == 似乎没有任何问题: 但现在看看这里发生了什么: 但看看在JavaScript中发生了什么: JavaScript自动将字符串转换成了数字! 这是人们对JavaScript的诸多不满之一,这也是TypeScript出现的原因。 那么你认为在 [] == ![] 的背后,真正发生了什么? 首先,在JavaScript中空数组是真值,所以 ! 作用于它使其变成 false 我们突然发现 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览