การพูดคุย 'Wat' สำหรับ CodeMash 2012โดยทั่วไปชี้ให้เห็นถึงความแปลกประหลาดของทับทิมและจาวาสคริปต์
ผมได้ทำ JSFiddle ของผลที่http://jsfiddle.net/fe479/9/
พฤติกรรมที่เฉพาะเจาะจงกับ JavaScript (ตามที่ฉันไม่รู้ว่า Ruby) มีการระบุไว้ด้านล่าง
ฉันพบใน JSFiddle ว่าผลลัพธ์บางอย่างของฉันไม่ตรงกับผลลัพธ์ในวิดีโอและฉันไม่แน่ใจว่าทำไม อย่างไรก็ตามฉันอยากรู้ว่า JavaScript จัดการกับเบื้องหลังในแต่ละกรณีได้อย่างไร
Empty Array + Empty Array
[] + []
result:
<Empty String>
ฉันค่อนข้างสงสัยเกี่ยวกับ+
โอเปอเรเตอร์เมื่อใช้กับอาร์เรย์ใน JavaScript ตรงกับผลลัพธ์ของวิดีโอ
Empty Array + Object
[] + {}
result:
[Object]
ตรงกับผลลัพธ์ของวิดีโอ เกิดอะไรขึ้นที่นี่? ทำไมถึงเป็นวัตถุ อะไร+
ประกอบการทำอย่างไร
Object + Empty Array
{} + []
result:
[Object]
สิ่งนี้ไม่ตรงกับวิดีโอ วิดีโอแนะนำว่าผลลัพธ์คือ 0 ในขณะที่ฉันได้รับ [Object]
Object + Object
{} + {}
result:
[Object][Object]
สิ่งนี้ไม่ตรงกับวิดีโอและวิธีการส่งออกตัวแปรส่งผลให้วัตถุสองรายการ บางที JSFiddle ของฉันผิด
Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
กำลังทำ +1 ผลลัพธ์ในwat1wat1wat1wat1
...
ฉันสงสัยว่านี่เป็นเพียงพฤติกรรมที่ตรงไปตรงมาที่พยายามลบจำนวนจากผลลัพธ์สตริงใน NaN
Array(16).join("wat" - 1) + " Batman!"
{} + {}
แต่สำหรับ