Tiada Punca Kelihatan untuk "Token Tidak Dijangka HARAM"
Setelah menghadapi ralat JavaScript "Ralat Sintaks Tidak Dijangka: Token Tidak Dijangka HARAM," reaksi awal mungkin kekurangan sebab yang dapat dilihat, terutamanya untuk kod yang kelihatan mudah seperti "var foo = 'bar';".
Sumber Ralat
Apabila kod JavaScript dihuraikan, ia terbahagi kepada "token," dan sebarang token yang tidak boleh dikategorikan ke dalam empat jenis asas menerima label "HARAM". Ralat ini juga boleh timbul daripada aksara yang salah letak atau unsur sintaksis yang hilang, seperti simbol sesat @, pendakap tidak seimbang, petikan yang tidak betul dan sebagainya.
Watak Haram Tidak Nampak
Dalam kes di mana sintaks kelihatan sah, penyebabnya mungkin watak yang tidak kelihatan: ruang Unicode Zero-width (ZWSP, atau U 200B), dilambangkan sebagai . Watak ini biasanya menyebabkan ralat "Token yang tidak dijangka HARAM", yang berasal daripada sumber seperti jsfiddle, yang telah diketahui membenamkan ZWSP untuk mengawal pembungkusan perkataan.
Mengenal pasti Watak Halimunan
Untuk mengesan ZWSP, dayakan paparan aksara yang tidak kelihatan dalam editor anda. Dalam Vim, sebagai contoh, ia ditunjukkan sebagai
Isu Berkaitan
ZWSP berfungsi untuk tujuan yang sah, membolehkan kawalan pembalut baris yang tepat. Walau bagaimanapun, kehadirannya juga boleh memperkenalkan masalah lain, seperti:
Spesifikasi Skrip ECMA
Walaupun Spesifikasi ECMAScript menyebut aksara ruang kosong yang serupa, ia tidak menyebut ZWSP secara eksplisit. Walau bagaimanapun, rujukan kepada "pemisah ruang" dalam spesifikasi menunjukkan bahawa ZWSP sepatutnya, sebenarnya, dianggap ruang putih. Namun begitu, pelaksanaan semasa menganggapnya sebagai token yang tidak dijangka.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Ralat Sintaks Tidak Dijangka: Token tidak dijangka HARAM' dalam Kod JavaScript Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!