En Wat"-Vortrag für CodeMash 2012 weist grundsätzlich auf ein paar bizarre Eigenheiten von Ruby und JavaScript hin.
Ich habe ein JSFiddle mit den Ergebnissen erstellt unter http://jsfiddle.net/fe479/9/ .
Die für JavaScript spezifischen Verhaltensweisen (da ich Ruby nicht kenne) sind unten aufgeführt.
Ich habe im JSFiddle festgestellt, dass einige meiner Ergebnisse nicht mit denen im Video übereinstimmen, und ich bin mir nicht sicher, warum. Ich bin jedoch neugierig, wie JavaScript in jedem Fall hinter den Kulissen arbeitet.
Empty Array + Empty Array
[] + []
result:
<Empty String>
Ich bin sehr neugierig auf die +
Operator bei der Verwendung mit Arrays in JavaScript. Dies entspricht dem Ergebnis des Videos.
Empty Array + Object
[] + {}
result:
[Object]
Dies entspricht dem Ergebnis des Videos. Was ist hier los? Warum ist dies ein Objekt. Was bewirkt die +
Betreiber tun?
Object + Empty Array
{} + []
result:
[Object]
Das stimmt nicht mit dem Video überein. Das Video suggeriert, dass das Ergebnis 0 ist, während ich [Objekt] erhalte.
Object + Object
{} + {}
result:
[Object][Object]
Das passt auch nicht zum Video, und wie führt die Ausgabe einer Variablen zu zwei Objekten? Vielleicht ist mein JSFiddle falsch.
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Mit wat + 1 erhält man wat1wat1wat1wat1
...
Ich vermute, dies ist nur einfaches Verhalten, dass der Versuch, eine Zahl von einer Zeichenfolge zu subtrahieren Ergebnisse in NaN.