CodeMash 2012 'Wat' konuşma temelde Ruby ve JavaScript ile birkaç tuhaf tuhaflıklar işaret ediyor.
Ben de sonuçlarının bir JSFiddle yaptık http://jsfiddle.net/fe479/9/ .
JavaScript'e özgü davranışlar (Ruby'yi bilmediğim gibi) aşağıda listelenmiştir.
JSFiddle'da bazı sonuçlarımın videodakilerle uyuşmadığını gördüm ve neden olduğundan emin değilim. Bununla birlikte, her durumda JavaScript'in perde arkasında nasıl çalıştığını bilmek istiyorum.
Empty Array + Empty Array
[] + []
result:
<Empty String>
+
JavaScript'te dizilerle kullanıldığında operatörü çok merak ediyorum . Bu, videonun sonucuyla eşleşir.
Empty Array + Object
[] + {}
result:
[Object]
Bu, videonun sonucuyla eşleşir. Burada neler oluyor? Bu neden bir obje. Ne geliyor +
operatör mı?
Object + Empty Array
{} + []
result:
[Object]
Bu videoyla eşleşmiyor. Video sonucun 0 olduğunu öne sürerken, [Object] elde ederim.
Object + Object
{} + {}
result:
[Object][Object]
Bu da videoyla eşleşmiyor ve bir değişkenin çıktısı nasıl iki nesneye neden oluyor? Belki JSFiddle'ım yanlış.
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Wat + 1 yapmak wat1wat1wat1wat1
...
Bu sadece bir dize bir sayı çıkarmaya çalışırken NaN sonuçlarına yol açan basit bir davranış olduğundan şüpheleniyorum.
Array(16).join("wat" - 1) + " Batman!"
{} + {}
.