Rumah > hujung hadapan web > tutorial js > Mengapa JavaScript Menghasilkan Keputusan Yang Tidak Dijangka dalam Operasi Aritmetik Pelik Ini?

Mengapa JavaScript Menghasilkan Keputusan Yang Tidak Dijangka dalam Operasi Aritmetik Pelik Ini?

Mary-Kate Olsen
Lepaskan: 2024-12-24 18:19:14
asal
619 orang telah melayarinya

Why Does JavaScript Produce Unexpected Results in These Strange Arithmetic Operations?

Gelagat JavaScript yang Membingungkan dalam Bual 'Wat'

Ceramah 'Wat' untuk CodeMash 2012 menyerlahkan beberapa gelagat pelik dalam JavaScript, dan ia adalah bernilai meneroka mereka untuk memahami apa yang berlaku di sebalik adegan.

[] []
Operator penambahan ( ) yang digunakan dengan tatasusunan kosong menukarkan operan kepada primitif dan bergabung dengannya. Oleh kerana nilai primitif lalai tatasusunan ialah rentetan kosong, hasil [] [] ialah rentetan kosong.

[] {}
Objek dalam JavaScript mempunyai toString() kaedah yang mengembalikan "[objek Objek]" apabila dipanggil. Oleh itu, [] {} menghasilkan objek, khususnya rentetan "[objek Objek]".

{} []
Apabila digunakan dalam pernyataan, {} dihuraikan sebagai blok kosong dan dengan itu mengembalikan tidak ditentukan. Operator memaksa operan yang tidak ditentukan kepada nombor, menghasilkan 0 untuk {} [] (manakala ceramah "Wat" menyebut ia sepatutnya NaN).

{} {}
Serupa kepada {} [], {} pertama dihuraikan sebagai blok kosong, mengakibatkan tidak ditentukan. Walau bagaimanapun, pengendali gagal untuk memaksa rentetan "[objek objek]" (nilai toString() {} kedua kepada nombor, menghasilkan NaN.

Array(16).join ("wat" - 1)
ToNumber() menukarkan "wat" - 1 kepada NaN, kerana penolakan nombor daripada rentetan menghasilkan nilai bukan angka. ToPrimitive() kemudian menukar NaN kepada rentetan "NaN", yang diulang 16 kali apabila menyertai elemen tatasusunan.

Kesimpulan
Gelagat yang kelihatan aneh ini berpunca daripada peraturan penukaran primitif JavaScript dan kaedah khusus yang dikaitkan dengan tatasusunan dan objek. Dengan memahami mekanisme asas ini, anda boleh mengelakkan keputusan yang tidak dijangka dan memanfaatkan kuasa penuh JavaScript.

Atas ialah kandungan terperinci Mengapa JavaScript Menghasilkan Keputusan Yang Tidak Dijangka dalam Operasi Aritmetik Pelik Ini?. 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