JavaScript: Mentafsir {} sebagai Blok atau Objek Kosong
Apabila ditemui dengan kod {}, JavaScript mentafsirkannya sebagai sama ada kosong blok atau objek kosong bergantung pada konteks. Tingkah laku ini timbul daripada tatabahasa bahasa, yang mentakrifkan pernyataan sebagai termasuk blok.
Blok lwn. Objek
Blok dalam JavaScript ditakrifkan sebagai sepasang kerinting pendakap { } pilihan yang mengandungi pernyataan. Objek literal, sebaliknya, ialah senarai pasangan nilai kunci yang dipisahkan koma yang turut disertakan dalam kurungan kerinting.
Tafsiran Jurubahasa
Apabila menghadapi {} , penghurai JavaScript mula-mula cuba mentafsirkannya sebagai blok. Jika ia tidak menemui kenyataan dalam pendakap, ia menganggapnya sebagai blok kosong. Tafsiran ini lebih diutamakan daripada menganggap struktur sebagai objek kosong.
Contoh
Pertimbangkan kod {}[]. Jika ditafsirkan sebagai blok, ia menilai kepada blok kosong (yang tidak melakukan apa-apa) diikuti dengan tatasusunan kosong (yang menilai kepada 0). Walau bagaimanapun, jika ditafsirkan sebagai objek, ia akan menghasilkan TypeError kerana anda tidak boleh mencipta sifat objek tanpa kunci yang sepadan.
Ketidakkonsistenan Antara Persekitaran
Nod .js dan alat pembangun Firebug/Chrome mengendalikan tafsiran {} secara berbeza. Node.js sentiasa mentafsirkannya sebagai ungkapan, manakala yang terakhir menganggapnya sebagai pernyataan. Ketidakkonsistenan ini timbul daripada pendekatan persekitaran yang berbeza terhadap konteks di mana kod itu dinilai.
Ringkasnya, JavaScript mentafsir {} sebagai blok kosong apabila ia tidak mengandungi sebarang pernyataan. Tafsiran ini ditentukan oleh tatabahasa bahasa dan diutamakan daripada tafsiran sebagai objek kosong. Walau bagaimanapun, persekitaran yang berbeza mungkin menggunakan tafsiran ini secara berbeza bergantung pada konteks kod.
Atas ialah kandungan terperinci Bilakah JavaScript Melayan {} sebagai Blok atau Objek Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!