Le discours «Wat» pour CodeMash 2012 souligne essentiellement quelques bizarreries bizarres avec Ruby et JavaScript.
J'ai fait un JSFiddle des résultats à http://jsfiddle.net/fe479/9/ .
Les comportements spécifiques à JavaScript (comme je ne connais pas Ruby) sont listés ci-dessous.
J'ai trouvé dans le JSFiddle que certains de mes résultats ne correspondaient pas à ceux de la vidéo, et je ne sais pas pourquoi. Je suis cependant curieux de savoir comment JavaScript gère le travail en arrière-plan dans chaque cas.
Empty Array + Empty Array
[] + []
result:
<Empty String>
Je suis assez curieux de connaître l' +
opérateur lorsqu'il est utilisé avec des tableaux en JavaScript. Cela correspond au résultat de la vidéo.
Empty Array + Object
[] + {}
result:
[Object]
Cela correspond au résultat de la vidéo. Que se passe t-il ici? Pourquoi est-ce un objet. Que fait l' +
opérateur?
Object + Empty Array
{} + []
result:
[Object]
Cela ne correspond pas à la vidéo. La vidéo suggère que le résultat est 0, alors que j'obtiens [Object].
Object + Object
{} + {}
result:
[Object][Object]
Cela ne correspond pas non plus à la vidéo, et comment la sortie d'une variable entraîne-t-elle deux objets? Peut-être que mon JSFiddle est faux.
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Faire wat + 1 résulte en wat1wat1wat1wat1
...
Je soupçonne que c'est simplement un comportement simple qu'essayer de soustraire un nombre d'une chaîne entraîne NaN.
Array(16).join("wat" - 1) + " Batman!"
{} + {}
.