Der 'Wat'-Vortrag für CodeMash 2012 weist im Grunde genommen auf einige bizarre Macken mit Ruby und JavaScript hin.
Ich habe eine JSFiddle der Ergebnisse unter http://jsfiddle.net/fe479/9/ erstellt .
Die für JavaScript spezifischen Verhaltensweisen (da ich Ruby nicht kenne) sind unten aufgeführt.
Ich habe in der JSFiddle festgestellt, dass einige meiner Ergebnisse nicht mit denen im Video übereinstimmen, und ich bin mir nicht sicher, warum. Ich bin jedoch gespannt, wie JavaScript jeweils hinter den Kulissen arbeitet.
Empty Array + Empty Array
[] + []
result:
<Empty String>
Ich bin ziemlich neugierig auf den +
Operator, wenn er mit Arrays in JavaScript verwendet wird. Dies entspricht dem Ergebnis des Videos.
Empty Array + Object
[] + {}
result:
[Object]
Dies entspricht dem Ergebnis des Videos. Was ist denn hier los? Warum ist das ein Objekt? Was macht der +
Bediener?
Object + Empty Array
{} + []
result:
[Object]
Dies stimmt nicht mit dem Video überein. Das Video legt nahe, dass das Ergebnis 0 ist, während ich [Objekt] erhalte.
Object + Object
{} + {}
result:
[Object][Object]
Dies stimmt auch nicht mit dem Video überein. Wie führt die Ausgabe einer Variablen zu zwei Objekten? Vielleicht ist meine JSFiddle falsch.
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Wat + 1 führt zu wat1wat1wat1wat1
...
Ich vermute, dass dies nur ein einfaches Verhalten ist, bei dem der Versuch, eine Zahl von einer Zeichenfolge zu subtrahieren, zu NaN führt.
Array(16).join("wat" - 1) + " Batman!"
{} + {}
.