ฉันไม่สามารถปิดล้อมรอบมุมแหลมนี้
[1,2,3,4,5,6][1,2,3]; // 4
[1,2,3,4,5,6][1,2]; // 3
ฉันรู้[1,2,3] + [1,2] = "1,2,31,2"แต่ไม่พบประเภทหรือการดำเนินการที่กำลังดำเนินการอยู่
ฉันไม่สามารถปิดล้อมรอบมุมแหลมนี้
[1,2,3,4,5,6][1,2,3]; // 4
[1,2,3,4,5,6][1,2]; // 3
ฉันรู้[1,2,3] + [1,2] = "1,2,31,2"แต่ไม่พบประเภทหรือการดำเนินการที่กำลังดำเนินการอยู่
คำตอบ:
[1,2,3,4,5,6][1,2,3];
^ ^
| |
array + — array subscript access operation,
where index is `1,2,3`,
which is an expression that evaluates to `3`.
ที่สอง[...]ไม่สามารถเป็นอาร์เรย์ได้ดังนั้นจึงเป็นการดำเนินการห้อยของอาร์เรย์ และเนื้อหาของการดำเนินการตัวห้อยไม่ได้เป็นรายการตัวถูกดำเนินการของตัวคั่น แต่เป็นนิพจน์เดียว
(1,2) == 2เพราะ คุณพบโอเปอเรเตอร์จุลภาค (หรือคำอธิบายที่ง่ายกว่าที่นี่ )
ยกเว้นว่าเครื่องหมายจุลภาคปรากฏในรายการประกาศรายการพารามิเตอร์วัตถุหรือตัวอักษรอาร์เรย์พวกเขาทำหน้าที่เหมือนตัวดำเนินการไบนารีอื่น ๆ x, yประเมินxจากนั้นประเมินyและให้ผลลัพธ์ที่เป็นผลลัพธ์
[1,2,3,4,5,6][1,2,3];
นี่คือกล่องที่สองคือ[1,2,3]กลายเป็น[3]รายการสุดท้ายดังนั้นผลลัพธ์จะเป็น 4 เช่นถ้าคุณเก็บไว้[1,2,3,4,5,6]ในอาร์เรย์
var arr=[1,2,3,4,5,6];
arr[3]; // as [1,2,3] in the place of index is equal to [3]
เหมือนกับ
*var arr2=[1,2,3,4,5,6];
// arr[1,2] or arr[2] will give 3*
แต่เมื่อคุณใส่เครื่องหมาย + ในเครื่องหมายวงเล็บเหลี่ยมอันที่สองจะไม่ใช้สำหรับการกล่าวถึงดัชนี มันค่อนข้างเป็นอีกชุดหนึ่งนั่นคือเหตุผลที่คุณได้รับ
[1,2,3] + [1,2] = 1,2,31,2
กล่าวคือ
var arr_1=[1,2,3];
var arr_2=[1,2];
arr_1 + arr_2; // i.e. 1,2,31,2
โดยทั่วไปในกรณีแรกมันถูกใช้เป็นดัชนีของอาร์เรย์และในกรณีที่สองมันเป็นตัวเองอาร์เรย์