'Wat' talk for CodeMash 2012 是一次关于 Ruby 和 JavaScript 的讲座,主要介绍了一些奇怪的特性。
我已经在 http://jsfiddle.net/fe479/9/ 上制作了一个 JSFiddle。
以下是 JavaScript 特有的行为(因为我不懂 Ruby)。
我发现在 JSFiddle 上有些结果与视频中的不符,但我很好奇 JavaScript 在每种情况下是如何处理的。
Empty Array + Empty Array
[] + []
result:
<Empty String>
当在JavaScript中与数组一起使用时,我对+
运算符非常好奇。
这与视频的结果匹配。
Empty Array + Object
[] + {}
result:
[Object]
这与视频结果相匹配。这是怎么回事?为什么这是一个对象?+
运算符有什么作用?
Object + Empty Array
{} + []
result:
[Object]
这与视频中的不符。视频表明结果为0,而我得到了[Object]。
Object + Object
{} + {}
result:
[Object][Object]
这也与视频不匹配,输出一个变量怎么会导致两个对象?也许我的JSFiddle有问题。
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
执行 wat + 1 的结果是 wat1wat1wat1wat1
...
我怀疑这只是一种直接的行为,试图从字符串中减去一个数字会得到 NaN。
Array(16).join("wat" - 1) + " Batman!"
- Nick Johnson{} + {}
。 - Ionică Bizău