La charla 'Wat' para CodeMash 2012 básicamente señala algunas peculiaridades extrañas con Ruby y JavaScript.
He hecho un JSFiddle de los resultados en http://jsfiddle.net/fe479/9/ .
Los comportamientos específicos de JavaScript (como no sé Ruby) se enumeran a continuación.
En el JSFiddle descubrí que algunos de mis resultados no se correspondían con los del video, y no estoy seguro de por qué. Sin embargo, tengo curiosidad por saber cómo se maneja JavaScript trabajando detrás de escena en cada caso.
Empty Array + Empty Array
[] + []
result:
<Empty String>
Tengo mucha curiosidad sobre el +
operador cuando se usa con matrices en JavaScript. Esto coincide con el resultado del video.
Empty Array + Object
[] + {}
result:
[Object]
Esto coincide con el resultado del video. ¿Que está pasando aqui? ¿Por qué es esto un objeto? ¿Qué hace el +
operador?
Object + Empty Array
{} + []
result:
[Object]
Esto no coincide con el video. El video sugiere que el resultado es 0, mientras que obtengo [Objeto].
Object + Object
{} + {}
result:
[Object][Object]
Esto tampoco coincide con el video, y ¿cómo la salida de una variable da como resultado dos objetos? Tal vez mi JSFiddle está mal.
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Hacer wat + 1 da como resultado wat1wat1wat1wat1
...
Sospecho que esto es solo un comportamiento directo que tratar de restar un número de una cadena da como resultado NaN.
Array(16).join("wat" - 1) + " Batman!"
{} + {}
.