Mengapa Adakah [5,6,8,7][1,2] = 8 dalam JavaScript?

Barbara Streisand
Lepaskan: 2024-11-02 17:09:02
asal
983 orang telah melayarinya

Why Does [5,6,8,7][1,2] = 8 in JavaScript?

Menyingkap Kes Penasaran Langganan Tatasusunan JavaScript

Dalam bidang JavaScript, kebiasaan tertentu boleh menyebabkan pembangun menggaru kepala mereka. Satu teka-teki sedemikian ialah tingkah laku yang tidak dijangka bagi operasi subskrip tatasusunan. Pertimbangkan kod berikut:

[5,6,8,7][1,2] = 8
Salin selepas log masuk

Menariknya, ungkapan ini bernilai 8, membuatkan ramai yang bingung. Untuk menyelesaikan teka-teki ini, kami menyelidiki bahagian dalaman langganan tatasusunan JavaScript.

Langganan Tatasusunan dengan Berbilang Argumen

Kunci untuk memahami tingkah laku ini terletak pada menyedari bahawa yang kedua set kurungan segi empat sama [] dalam [5,6,8,7][1,2] tidak mewakili tatasusunan. Sebaliknya, ia menunjukkan operasi subskrip tatasusunan, dengan ungkapan di dalam kurungan menjadi indeks.

Dalam kes ini, ungkapan 1,2 menilai kepada 3. Menggantikan nilai ini, kita mempunyai:

[5,6,8,7][3] = 8
Salin selepas log masuk

Ungkapan ini kini menjalankan operasi subskrip tatasusunan biasa, memberikan nilai 8 kepada elemen pada indeks 3.

Pengendali Koma

Pengendali koma ( `) memainkan peranan penting di sini. Tujuan utamanya adalah untuk memisahkan berbilang ungkapan, tetapi ia mempunyai kesan tambahan untuk menilai setiap operan dari kiri ke kanan dan mengembalikan nilai operan terakhir.

Dalam ungkapan 1,2,3, operator koma menilai kedua-dua 1 dan 2, tetapi hasil daripada keseluruhan ungkapan ialah 3.

Kesimpulan

Berbekalkan pengetahuan ini, menjadi jelas bahawa tingkah laku yang membingungkan itu hanyalah hasil langganan tatasusunan dan operator koma bekerja bersama. Dengan memahami mekanisme asas, kami boleh menyahmistifikasikan keanehan JavaScript ini dan mengelakkan kekeliruan masa hadapan.

Atas ialah kandungan terperinci Mengapa Adakah [5,6,8,7][1,2] = 8 dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan