Обсуждение 'Wat' для CodeMash 2012 в основном указывает на несколько причудливых причуд с Ruby и 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.