【发布时间】:2015-09-22 15:09:30
【问题描述】:
我知道空字符串在 javascript 中是虚假的,非空字符串在 javascript 中是真实的。
但是,为什么 'false' 在 javascript 中是真的,规范中有什么明确的吗?这是性能问题还是在某些情况下您希望字符串 'false' 代表 true?
【问题讨论】:
-
非空字符串是真实的,无论它包含什么字符
-
@FrédéricHamidi 你能补充一下这个答案吗,很多答案是什么,而不是原因。
-
请注意,大多数允许字符串“真”/“假”值的语言不尝试实际解析字符串。即使在 Bash 中,
false是一个始终返回非零错误代码的命令,双括号if构造仍然将字符串false评估为“真实”:if [[ false ]]; then echo ha; fi。只有 Perl 会在这种转换 可能 有意义时尝试将字符串视为数字,在确定字符串的“真实性”时,它实际上会关心字符串的内容,即使存在"false"也不考虑错误("0"和"undef"是)。
标签: javascript casting boolean truthiness