Halaman ini menjelaskan tata bahasa leksikal JavaScript. Teks sumber JavaScript hanyalah urutan karakter — agar juru bahasa dapat memahaminya, string harus diuraikan menjadi representasi yang lebih terstruktur. Langkah awal penguraian disebut analisis leksikal, di mana teks dipindai dari kiri ke kanan dan diubah menjadi urutan elemen input atomik individual. Beberapa elemen masukan tidak signifikan bagi penafsir, dan akan dihapus setelah langkah ini — termasuk dan. Lainnya, termasuk , , , dan tanda baca (kebanyakan operator), akan digunakan untuk analisis sintaks lebih lanjut. dan komentar multibaris juga secara sintaksis tidak signifikan, tetapi memandu proses untuk membuat urutan token tertentu yang tidak valid menjadi valid Show Karakter kontrol format tidak memiliki representasi visual tetapi digunakan untuk mengontrol interpretasi teks Code pointNameAbbreviationDescriptionU+200CZero width non-joinerIn JavaScript source text, Karakter spasi meningkatkan keterbacaan teks sumber dan memisahkan token satu sama lain. Karakter ini biasanya tidak diperlukan untuk fungsionalitas kode. Alat minifikasi sering digunakan untuk menghilangkan spasi untuk mengurangi jumlah data yang perlu ditransfer Code pointNameAbbreviationDescriptionEscape sequenceU+0009Character tabulationCatatan. Karakter dengan properti "White_Space" tetapi tidak termasuk dalam kategori umum "Space_Separator", U+0009, U+000B, dan U+000C masih diperlakukan sebagai spasi putih dalam JavaScript; Catatan. Perubahan pada standar Unicode yang digunakan oleh mesin JavaScript dapat memengaruhi perilaku program. Misalnya, ES2016 meningkatkan referensi standar Unicode dari 5. 1 sampai 8. 0. 0, yang menyebabkan U+180E MONGOLIAN VOWEL SEPARATOR dipindahkan dari kategori "Space_Separator" ke kategori "Format (Cf)", dan menjadikannya non-spasi putih. Selanjutnya, hasil dari 1 diubah dari 2 menjadi 3Selain karakter, karakter terminator baris digunakan untuk meningkatkan keterbacaan teks sumber. Namun, dalam beberapa kasus, terminator baris dapat memengaruhi eksekusi kode JavaScript karena ada beberapa tempat yang melarangnya. Garis terminator juga mempengaruhi proses Di luar konteks tata bahasa leksikal, ruang putih dan terminator garis sering digabungkan. Misalnya, 4 menghapus semua spasi putih dan terminator garis dari awal dan akhir string. Pelarian kelas karakter 5 dalam ekspresi reguler cocok dengan semua spasi putih dan terminator garisHanya poin kode Unicode berikut yang diperlakukan sebagai terminator baris dalam ECMAScript, karakter pemecah baris lainnya diperlakukan sebagai spasi putih (misalnya, Baris Berikutnya, NEL, U+0085 dianggap sebagai spasi putih) Code pointNameAbbreviationDescriptionEscape sequenceU+000ALine FeedKomentar digunakan untuk menambahkan petunjuk, catatan, saran, atau peringatan ke kode JavaScript. Ini dapat membuatnya lebih mudah dibaca dan dipahami. Mereka juga dapat digunakan untuk menonaktifkan kode untuk mencegahnya dieksekusi; JavaScript memiliki dua cara lama untuk menambahkan komentar ke kode. baris komentar dan blokir komentar. Selain itu, ada sintaks komentar hashbang khusus Cara pertama adalah komentar 6; . Sebagai contoh _Cara kedua adalah gaya _7, yang jauh lebih fleksibelMisalnya, Anda dapat menggunakannya dalam satu baris _Anda juga dapat membuat komentar multi-baris, seperti ini _Anda juga dapat menggunakannya di tengah baris, jika diinginkan, meskipun hal ini dapat membuat kode Anda lebih sulit dibaca sehingga harus digunakan dengan hati-hati
Selain itu, Anda dapat menggunakannya untuk menonaktifkan kode agar tidak berjalan, dengan membungkus kode dalam komentar, seperti ini
Dalam hal ini, panggilan _8 tidak pernah dikeluarkan, karena ada di dalam komentar. Sejumlah baris kode dapat dinonaktifkan dengan cara iniBlokir komentar yang berisi setidaknya satu terminator baris berperilaku seperti di Ada sintaks komentar khusus ketiga, komentar hashbang. Komentar hashbang berperilaku persis seperti komentar satu baris saja ( 6), kecuali bahwa itu dimulai dengan 0 dan hanya valid pada awal absolut dari skrip atau modul. Perhatikan juga bahwa tidak ada spasi kosong apa pun yang diizinkan sebelum 0. Komentar terdiri dari semua karakter setelah 0 hingga akhir baris pertama; Komentar hashbang di JavaScript menyerupai shebang di Unix yang menyediakan jalur ke juru bahasa JavaScript tertentu yang ingin Anda gunakan untuk mengeksekusi skrip. Sebelum komentar hashbang menjadi standar, itu sudah diimplementasikan secara de-facto di host non-browser seperti Node. js, yang dihapus dari teks sumber sebelum diteruskan ke mesin. Contohnya adalah sebagai berikut
Penerjemah JavaScript akan memperlakukannya sebagai komentar normal — ini hanya memiliki arti semantik ke shell jika skrip dijalankan langsung di shell Peringatan. Jika Anda ingin skrip dapat dijalankan secara langsung di lingkungan shell, enkodekan dalam UTF-8 tanpa BOM. Meskipun BOM tidak akan menyebabkan masalah untuk menjalankan kode di browser — karena BOM dihapus selama decoding UTF-8, sebelum teks sumber dianalisis — shell Unix/Linux tidak akan mengenali hashbang jika didahului oleh karakter BOM Anda hanya boleh menggunakan gaya komentar _0 untuk menentukan juru bahasa JavaScript. Dalam semua kasus lain, cukup gunakan komentar 6 (atau komentar multibaris)Pengidentifikasi digunakan untuk menghubungkan nilai dengan nama. Pengenal dapat digunakan di berbagai tempat
Dalam JavaScript, pengidentifikasi biasanya dibuat dari karakter alfanumerik, garis bawah ( 5), dan tanda dolar ( 6). Pengidentifikasi tidak boleh dimulai dengan angka. Namun, pengidentifikasi JavaScript tidak hanya terbatas pada ASCII — banyak titik kode Unicode juga diperbolehkan. Yakni, karakter apa pun dalam kategori ID_Start dapat memulai pengenal, sedangkan karakter apa pun dalam kategori ID_Continue dapat muncul setelah karakter pertamaCatatan. Jika, karena alasan tertentu, Anda perlu mengurai sendiri beberapa sumber JavaScript, jangan menganggap semua pengidentifikasi mengikuti pola 7 (i. e. ASCII saja). Kisaran pengidentifikasi dapat dijelaskan oleh regex 8 (tidak termasuk urutan pelolosan unicode)Selain itu, JavaScript memungkinkan penggunaan dalam bentuk 9 atau 0 dalam pengidentifikasi, yang menyandikan nilai string yang sama dengan karakter Unicode yang sebenarnya. Misalnya, 1 dan 2 adalah pengidentifikasi yang sama
Tidak semua tempat menerima rangkaian lengkap pengidentifikasi. Sintaks tertentu, seperti deklarasi fungsi, ekspresi fungsi, dan deklarasi variabel memerlukan penggunaan nama pengidentifikasi yang bukan
Terutama, properti pribadi dan properti objek mengizinkan kata-kata yang dicadangkan
Kata kunci adalah token yang terlihat seperti pengidentifikasi tetapi memiliki arti khusus dalam JavaScript. Misalnya, kata kunci _3 sebelum deklarasi fungsi menunjukkan bahwa fungsi tersebut asinkronBeberapa kata kunci dicadangkan, artinya tidak dapat digunakan sebagai pengidentifikasi untuk deklarasi variabel, deklarasi fungsi, dll. Mereka sering disebut kata-kata yang dilindungi undang-undang. disediakan di bawah ini. Tidak semua kata kunci dicadangkan — misalnya, 3 dapat digunakan sebagai pengidentifikasi di mana saja. Beberapa kata kunci hanya dicadangkan secara kontekstual — misalnya, 5 hanya dicadangkan dalam badan fungsi asinkron, dan 6 hanya dicadangkan dalam kode mode ketat, atau 7 dan 6 deklarasiPengidentifikasi selalu dibandingkan dengan nilai string, jadi escape sequence diinterpretasikan. Misalnya, ini masih merupakan kesalahan sintaksis _0Kata kunci ini tidak dapat digunakan sebagai pengidentifikasi untuk variabel, fungsi, kelas, dll. di mana saja di sumber JavaScript
Berikut ini hanya dicadangkan jika ditemukan dalam kode mode ketat
Berikut ini hanya dicadangkan jika ditemukan dalam kode modul atau badan fungsi asinkron
Berikut ini dicadangkan sebagai kata kunci mendatang oleh spesifikasi ECMAScript. Mereka tidak memiliki fungsi khusus saat ini, tetapi mungkin di masa mendatang, sehingga mereka tidak dapat digunakan sebagai pengidentifikasi Ini selalu dipesan
Berikut ini hanya dicadangkan jika ditemukan dalam kode mode ketat
Kata-kata cadangan masa depan dalam standar yang lebih tuaBerikut ini dicadangkan sebagai kata kunci mendatang oleh spesifikasi ECMAScript lama (ECMAScript 1 hingga 3)
Beberapa pengidentifikasi memiliki arti khusus dalam beberapa konteks tanpa kata-kata khusus apa pun. Mereka termasuk
Catatan. Bagian ini membahas literal yang merupakan token atom. Objek literal dan ekspresi yang terdiri dari serangkaian token Lihat juga _1 untuk informasi lebih lanjut _1Lihat juga untuk informasi lebih lanjut _2Jenis dan menggunakan literal numerik Desimal _3Literal desimal dapat dimulai dengan nol ( 2) diikuti oleh digit desimal lainnya, tetapi jika semua digit setelah 2 di depan lebih kecil dari 8, angka tersebut ditafsirkan sebagai angka oktal. Ini dianggap sebagai sintaks warisan, dan angka literal yang diawali dengan 2, apakah ditafsirkan sebagai oktal atau desimal, menyebabkan kesalahan sintaks di — jadi, gunakan awalan 47 sebagai gantinya _4EksponensialLiteral eksponensial desimal ditentukan oleh format berikut. _48; _5BinerSintaks bilangan biner menggunakan nol di depan diikuti dengan huruf Latin huruf kecil atau besar "B" ( 53 atau 54). Setiap karakter setelah 53 yang bukan 0 atau 1 akan menghentikan urutan literal _6OktalSintaks bilangan oktal menggunakan nol di depan diikuti dengan huruf Latin kecil atau besar "O" ( 47 atau 57. Karakter apa pun setelah 47 yang berada di luar rentang (01234567) akan menghentikan urutan literal _7HeksadesimalSintaks angka heksadesimal menggunakan nol di depan diikuti dengan huruf Latin kecil atau besar "X" ( 59 atau 60). Karakter apa pun setelah _59 yang berada di luar rentang (0123456789ABCDEF) akan menghentikan urutan literal _8BigInt literalJenisnya adalah primitif numerik dalam JavaScript yang dapat mewakili bilangan bulat dengan presisi sewenang-wenang. Literal BigInt dibuat dengan menambahkan 62 ke akhir bilangan bulat _9Literal BigInt tidak boleh dimulai dengan 2 untuk menghindari kebingungan dengan literal oktal lama _0Untuk angka oktal 64, selalu gunakan nol diikuti dengan huruf "o" (huruf besar atau kecil) _1Untuk informasi lebih lanjut tentang _64, lihat jugaPemisah numerikUntuk meningkatkan keterbacaan literal numerik, garis bawah ( 5, 67) dapat digunakan sebagai pemisah _2Perhatikan batasan ini _3Literal adalah nol atau lebih titik kode Unicode yang diapit tanda kutip tunggal atau ganda. Poin kode Unicode juga dapat diwakili oleh urutan pelarian. Semua poin kode dapat muncul secara harfiah dalam string literal kecuali untuk poin kode kutipan penutup ini
Poin kode apa pun dapat muncul dalam bentuk urutan pelarian. Literal string mengevaluasi ke nilai String ECMAScript. Saat membuat nilai String ini, poin kode Unicode dikodekan UTF-16 _4Urutan pelarian heksadesimalUrutan escape heksadesimal terdiri dari 68 diikuti dengan tepat dua digit heksadesimal yang mewakili unit kode atau titik kode dalam rentang 0x0000 hingga 0x00FF _5Urutan pelarian UnicodeUrutan pelolosan Unicode terdiri dari tepat empat digit heksadesimal setelah 69. Ini mewakili unit kode dalam pengkodean UTF-16. Untuk titik kode U+0000 hingga U+FFFF, satuan kode sama dengan titik kode. Poin kode U+10000 hingga U+10FFFF memerlukan dua escape sequence yang mewakili dua unit kode (pasangan pengganti) yang digunakan untuk menyandikan karakter; Lihat juga _70 dan 71 _6Titik kode Unicode lolosPelarian titik kode Unicode terdiri dari 72, diikuti oleh titik kode dalam basis heksadesimal, diikuti oleh 73. Nilai digit heksadesimal harus dalam rentang 0 dan 0x10FFFF inklusif. Poin kode dalam rentang U+10000 hingga U+10FFFF tidak perlu direpresentasikan sebagai pasangan penggantiLihat juga _74 dan 75 _7Literal ekspresi reguler diapit oleh dua garis miring ke depan ( 76). Lexer menggunakan semua karakter hingga garis miring berikutnya yang tidak lolos atau akhir baris, kecuali garis miring muncul dalam kelas karakter ( 77). Beberapa karakter (yaitu, yang ) dapat muncul setelah garis miring penutup, yang menunjukkan benderaTata bahasa leksikal sangat lunak. tidak semua literal ekspresi reguler yang diidentifikasi sebagai satu token adalah ekspresi reguler yang valid Lihat juga _78 untuk informasi lebih lanjut _8Literal ekspresi reguler tidak dapat dimulai dengan dua garis miring ( 6), karena itu akan menjadi komentar baris. Untuk menentukan ekspresi reguler kosong, gunakan 80Satu literal template terdiri dari beberapa token. 81 (kepala templat), 82 (templat tengah), dan 83(ekor templat) adalah token individual, sementara ekspresi apa pun dapat muncul di antaranyaLihat juga templat literal untuk informasi lebih lanjut _9Beberapa definisi sintaks pernyataan JavaScript memerlukan titik koma ( 84) di bagian akhir. Mereka termasuk
Namun, untuk membuat bahasa lebih mudah didekati dan nyaman, JavaScript dapat menyisipkan titik koma secara otomatis saat menggunakan aliran token, sehingga beberapa urutan token yang tidak valid dapat "diperbaiki" ke sintaks yang valid. Langkah ini terjadi setelah teks program diurai menjadi token sesuai dengan tata bahasa leksikal. Ada tiga kasus ketika titik koma disisipkan secara otomatis 1. Ketika token yang tidak diizinkan oleh tata bahasa ditemukan, dan dipisahkan dari token sebelumnya oleh setidaknya satu (termasuk komentar blok yang menyertakan setidaknya satu terminator baris), atau tokennya adalah "}", maka titik koma disisipkan sebelum _0Akhiran ")" dari _88 dianggap sebagai kasus khusus oleh aturan ini juga _1Namun, titik koma tidak disisipkan jika titik koma kemudian akan menjadi pemisah di kepala pernyataan 4 _2Titik koma juga tidak pernah dimasukkan sebagai pernyataan kosong. Misalnya, dalam kode di bawah ini, jika titik koma disisipkan setelah ")", maka kode tersebut akan valid, dengan pernyataan kosong sebagai badan 6 dan deklarasi 7 sebagai pernyataan terpisah. Namun, karena titik koma yang disisipkan secara otomatis tidak dapat menjadi pernyataan kosong, ini menyebabkan a menjadi isi dari pernyataan 6, yang tidak valid _32. Ketika akhir aliran input token tercapai, dan parser tidak dapat mengurai aliran input tunggal sebagai program lengkap, titik koma disisipkan di bagian akhir. _4Aturan ini merupakan pelengkap aturan sebelumnya, khususnya untuk kasus di mana tidak ada "token yang menyinggung" tetapi akhir aliran input 3. Ketika tata bahasa melarang terminator garis di suatu tempat tetapi terminator garis ditemukan, titik koma disisipkan. Tempat-tempat tersebut antara lain
Di sini _15 tidak diperlakukan sebagai operator postfix yang menerapkan variabel 49, karena garis terminator terjadi antara 49 dan 15 _5Di sini, pernyataan 2 mengembalikan 20, dan 21 menjadi pernyataan yang tidak dapat dijangkau _6Perhatikan bahwa ASI hanya akan dipicu jika jeda baris memisahkan token yang akan menghasilkan sintaks yang tidak valid. Jika token berikutnya dapat diuraikan sebagai bagian dari struktur yang valid, titik koma tidak akan disisipkan. Sebagai contoh _7Karena _22 dapat dilihat sebagai panggilan fungsi, biasanya tidak akan memicu ASI. Demikian pula, _77 dapat menjadi akses anggota. Kode di atas setara dengan _8Ini adalah sintaks yang valid. _24 adalah pengakses properti dengan ekspresi yang bergabung dengan koma. Oleh karena itu, Anda akan mendapatkan kesalahan seperti "1 bukan fungsi" dan "Tidak dapat membaca properti yang tidak terdefinisi (membaca 'forEach')" saat menjalankan kodeDi dalam kelas, bidang kelas dan metode generator juga bisa menjadi jebakan _9Hal ini terlihat sebagai 0Dan karena itu akan menjadi kesalahan sintaks sekitar 25Ada aturan praktis berikut untuk menangani ASI, jika Anda ingin menerapkan gaya tanpa titik koma Manakah kata-kata khusus JavaScript?Kata yang dicadangkan . merusak menangkap kelas melanjutkan debugger bawaan menghapus Manakah dari berikut ini yang merupakan kata cadangan?Berikut ini adalah lebih banyak contoh kata-kata yang dicadangkan. abstract , if , private , this , double , implements , throw , boolean , else , import , public , throws , break , return , byte , extends , int , short , true , false , case , interface , static , try , catch ,
Apakah ketikkan kata yang dicadangkan dalam JavaScript?Kata yang dicadangkan
Kata kunci adalah token yang memiliki arti khusus dalam JavaScript . break, case, catch, continue, debugger, default, delete, do, else, last, for, function, if, in, instanceof, new, return, switch, this, throw, try, typeof, var, void, while, .
Manakah dari berikut ini yang merupakan kata cadangan JavaScript Mcq?Penjelasan. Ya, byte adalah kata yang dicadangkan dalam Javascript. |