Il discorso 'Wat' per CodeMash 2012 evidenzia sostanzialmente alcune strane stranezze con Ruby e JavaScript.
Ho realizzato una JSFiddle dei risultati su http://jsfiddle.net/fe479/9/ .
I comportamenti specifici di JavaScript (come non conosco Ruby) sono elencati di seguito.
Ho trovato nella JSFiddle che alcuni dei miei risultati non corrispondevano a quelli nel video, e non sono sicuro del perché. Sono, tuttavia, curioso di sapere come JavaScript sta gestendo lavorando dietro le quinte in ogni caso.
Empty Array + Empty Array
[] + []
result:
<Empty String>
Sono abbastanza curioso +
dell'operatore se utilizzato con array in JavaScript. Questo corrisponde al risultato del video.
Empty Array + Object
[] + {}
result:
[Object]
Questo corrisponde al risultato del video. Cosa sta succedendo qui? Perché questo è un oggetto. Cosa fa l' +
operatore?
Object + Empty Array
{} + []
result:
[Object]
Questo non corrisponde al video. Il video suggerisce che il risultato è 0, mentre ottengo [Oggetto].
Object + Object
{} + {}
result:
[Object][Object]
Neanche questo corrisponde al video, e in che modo l'output di una variabile risulta in due oggetti? Forse il mio JSFiddle è sbagliato.
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Facendo wat + 1 risulta in wat1wat1wat1wat1
...
Ho il sospetto che questo sia solo un comportamento semplice che il tentativo di sottrarre un numero da una stringa risulta in NaN.
Array(16).join("wat" - 1) + " Batman!"
{} + {}
.