今天看啥  ›  专栏  ›  程序员好物馆

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

程序员好物馆  · 公众号  ·  · 2024-09-16 09:00
    

文章预览

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

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