Rozmawiać „Wata” dla CodeMash 2012 zasadniczo wskazuje na kilka dziwnych dziwactwa z Ruby i JavaScript.
Zrobiłem JSFiddle wyników na http://jsfiddle.net/fe479/9/ .
Zachowania specyficzne dla JavaScript (ponieważ nie znam Rubiego) są wymienione poniżej.
W JSFiddle odkryłem, że niektóre z moich wyników nie odpowiadają tym z filmu i nie jestem pewien, dlaczego. Jestem jednak ciekawy, jak JavaScript radzi sobie z działaniem za kulisami w każdym przypadku.
Empty Array + Empty Array
[] + []
result:
<Empty String>
Jestem dość ciekawy +
operatora, gdy jest on używany z tablicami w JavaScript. To pasuje do wyniku wideo.
Empty Array + Object
[] + {}
result:
[Object]
To pasuje do wyniku wideo. Co tu się dzieje? Dlaczego to jest przedmiot? Co robi +
operator?
Object + Empty Array
{} + []
result:
[Object]
To nie pasuje do filmu. Film sugeruje, że wynik wynosi 0, podczas gdy otrzymuję [Obiekt].
Object + Object
{} + {}
result:
[Object][Object]
To również nie pasuje do wideo, a jak wyprowadzenie zmiennej powoduje powstanie dwóch obiektów? Może mój JSFiddle się myli.
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Wykonanie wat + 1 powoduje wat1wat1wat1wat1
...
Podejrzewam, że jest to po prostu zachowanie polegające na tym, że próba odjęcia liczby od łańcucha powoduje powstanie NaN.
Array(16).join("wat" - 1) + " Batman!"
{} + {}
.