【发布时间】:2012-06-09 22:41:33
【问题描述】:
启动您的解释器/控制台并尝试比较
> ",,," == Array(4)
True
为什么?一开始我想也许因为你可以把“,,”想象成一个由 '\0' 终止切片的四个字符的数组,这可能就是原因,但是
> "..." == Array(4)
返回“假”。所以为什么?我知道这是在 Javascript 中输入一些特殊的鸭子,但只是好奇是什么强调了这种行为。从 Zed Shaw 的优秀 presentation here btw 中收集到这一点。
【问题讨论】:
-
除了 C 之外,很少有语言以程序员可见的方式使用零终止符。
-
如果我可以问,是什么导致了这个发现?
-
@SomeKittens Zed Shaw 在我的问题中链接到的视频中明确提到了这一点(作为对 Javascript 的批评)。干杯!
-
@SomeKittens 这在(众所周知的)“wat”演讲中也提到过,展示了 Ruby 和 JavaScript 的一些怪癖destroyallsoftware.com/talks/wat
-
这是始终使用
===而不是==的众多充分理由之一。
标签: javascript