javascript - 为什么 `'\t\n 在 JavaScript 中是 ' == false`?

标签 javascript type-coercion

在 JavaScript 中...

'\t\n ' == false // true

我可以假设任何仅由空白字符组成的字符串在 JavaScript 中都被视为等于 false

According to this article ,我认为 false 将被转换为 0,但无法使用 Google 找到被认为等于 false 的空格。

这是为什么?除了深入研究 ECMAScript 规范之外,还有关于这个主题的一些好的读物吗?

最佳答案

This page提供了一个很好的规则总结。

按照这些规则,'\t\n ' 被转换为数字 (Number('\t\n') ==> 0),并且 false 被转换为数字 (Number(false) ==> 0),因此两者相等。


Alex's answer也是对 '\t\n ' == false 特殊情况的很好分解。


一个重要的区别是 '\t\n '不是 伪造的。例如:

if ('\t\n ') alert('not falsy'); // will produce the alert

关于javascript - 为什么 `'\t\n 在 JavaScript 中是 ' == false`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5634372/

相关文章:

javascript - Angular 未定义(匿名函数)@ md-data-table.min.js:1

javascript - Crossrider 扩展平台

rust - 对于所有类型 `T` 、 `U` 是否真的,如果 `T` 被强制转换为 `U` 那么 `&T` 被强制转换为 `&U` ?

javascript - 删除所有 "function foo() { ... }"并显示其他内容的正则表达式是什么?

javascript - 使用 Javascript 数组和对象创建表

javascript - 通过 jquery 在 head 中追加脚本

javascript - JavaScript 类型强制如何以及为何起作用?

php - PHP 如何使用比较运算符比较字符串?

ruby-on-rails - 如何强制 :select phrase on joined table? 返回的 ActiveRecord 属性的类型