Rumah >hujung hadapan web >tutorial js >Adakah Sisipan Titik Bertitik Automatik JavaScript Sentiasa Mencegah Ralat?

Adakah Sisipan Titik Bertitik Automatik JavaScript Sentiasa Mencegah Ralat?

Susan Sarandon
Susan Sarandonasal
2024-12-23 16:05:15847semak imbas

Does JavaScript's Automatic Semicolon Insertion Always Prevent Errors?

Nuansa Sisipan Koma Bertitik Automatik JavaScript

Menjelaskan Kebolehgunaan ASI

Sisipan koma bertitik automatik (ASI) ialah ciri JavaScript yang secara automatik memasukkan koma bertitik ke dalam kod apabila ia hilang dan tidak akan menyebabkan kesalahan sintaksis. Walau bagaimanapun, ia hanya digunakan pada jenis pernyataan tertentu:

  • Pernyataan kosong
  • Pengisytiharan boleh ubah
  • Pernyataan ungkapan
  • Pernyataan buat sementara
  • Teruskan kenyataan
  • Berhenti penyata
  • Kembalikan penyata
  • Baling penyataan

Peraturan ASI mengikut Spesifikasi ECMAScript

Spesifikasi ECMAScript mentakrifkan tiga senario untuk ASI:

1. Token Tidak Sah Ditemui

Token yang menyinggung perasaan yang tidak dibenarkan oleh tatabahasa mencetuskan sisipan koma bertitik jika:

  • Ia dipisahkan daripada token sebelumnya dengan pemutusan baris.
  • Ia diikuti dengan }.

2. Tamat Strim Input

Jika strim input tamat tanpa penghurai dapat menghuraikan atur cara yang lengkap, koma bertitik disisipkan pada penghujungnya.

3. Pengeluaran Terhad

Apabila token dibenarkan tetapi tergolong dalam "pengeluaran terhad" (cth., kembali atau teruskan tanpa pemisah baris), koma bertitik disisipkan di hadapannya.

Contoh:

return
"something";

berubah kepada:

return;
"something";

Pengecualian kepada Peraturan

Walau bagaimanapun, terdapat pengecualian kepada peraturan. Jika ASI akan mengakibatkan SyntaxError, ia tidak dimasukkan. Sebagai contoh, dalam kod berikut:

if (x)
return
  y;

ASI akan mengubahnya menjadi:

if (x)
return;
y;

Ini akan menyebabkan SyntaxError kerana y bukan pernyataan yang sah sendiri.

Atas ialah kandungan terperinci Adakah Sisipan Titik Bertitik Automatik JavaScript Sentiasa Mencegah Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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