Rumah >hujung hadapan web >tutorial js >Mengapakah ' [[]][ []] [ []]' sama dengan 10 dalam JavaScript?
Meneroka Enigma " [[]][ []] [ []]" dalam JavaScript
Pembangun JavaScript mungkin mendapati diri mereka buntu dengan ungkapan " [[]][ []] [ []]" kerana ia menghasilkan hasil yang tidak dijangka daripada "10". Mari kita mendalami proses di sebalik pengiraan yang penuh teka-teki ini untuk merungkai selok-beloknya.
Memecahkannya
Jika kita memecahkan ungkapan, ia berbunyi seperti berikut:
++[[]][+[]] + [+[]]
Dalam JavaScript, elemen tatasusunan boleh dipaksa menjadi nombor menggunakan operator ' '. Khususnya, [] === 0. Ini memaksa tatasusunan menjadi rentetan kosong, menghasilkan "" === 0.
Memudahkan Pengiraan
Dengan pemahaman ini, kita boleh memudahkan ungkapan sebagai:
++[[]][0] + [0]
Mengakses elemen pertama tatasusunan, [[]][0], mengembalikan tatasusunan dalam. Disebabkan rujukan, kami akan merujuknya sebagai A untuk mengelakkan kekeliruan.
Menambah dan Menukar
Pengendali menambah operannya dengan satu dan mengembalikan hasil yang ditambah. Oleh itu, [[]][0] adalah bersamaan dengan Nombor(A) 1.
Penggabungan Rentetan
Kita boleh memudahkan lagi:
(+[] + 1) + [0]
Pertama, [] dipaksa ke dalam rentetan "0". Kemudian, [] menghasilkan 1. Akhir sekali, "1" digabungkan dengan "0" menggunakan , kerana tatasusunan boleh digabungkan dengan , menghasilkan 10.
Teknikal
Di sebalik tabir, proses memaksa [] menjadi 0 melibatkan beberapa rujukan spesifikasi:
Kesimpulan
Melalui analisis langkah demi langkah ini, kami telah menjelaskan mekanik di sebalik ungkapan membingungkan " [[]][ []] [ []]" dalam JavaScript. Pelaksanaannya melibatkan paksaan, penambahan dan penggabungan, akhirnya mendedahkan perjalanan logik yang membawa kepada keputusan mengejutkan "10".
Atas ialah kandungan terperinci Mengapakah ' [[]][ []] [ []]' sama dengan 10 dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!