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
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
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!