Говорити «Ват» для CodeMash 2012 в основному вказує кілька дивних примх з Рубі і JavaScript.
Я склав JSFiddle з результатами на http://jsfiddle.net/fe479/9/ .
Поведінки, характерні для 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
Виконання ват + 1 результатів у wat1wat1wat1wat1
...
Я підозрюю, що це просто відверта поведінка, що намагання відняти число з рядка призводить до NaN.
Array(16).join("wat" - 1) + " Batman!"
{} + {}
.