Struktur leksikal dari bahasa pemrograman adalah seperangkat aturan dasar yang digunakan untuk menggambarkan bagaimana Anda menulis bahasa ini. Sebagai dasar sintaks, itu menentukan seperti apa nama variabel, cara menulis komentar, dan bagaimana membedakan antara pernyataan. Bagian ini menggunakan ruang yang sangat singkat untuk memperkenalkan struktur leksikal JavaScript.
1. Set karakter
Program JavaScript ditulis dalam set karakter Unicode, superset ASCII dan Latin-1 dan mendukung hampir semua bahasa di wilayah tersebut. ECMascript3 mensyaratkan bahwa implementasi JavaScript harus mendukung Versi UNICODE2, 1 dan selanjutnya, sementara ECMASCRIPT5 mensyaratkan bahwa implementasi JavaScript harus mendukung versi UNICODE3 dan selanjutnya.
Saya. Sensitif Kasus
JavaScript adalah bahasa yang sensitif terhadap case, yaitu, kata kunci, variabel, nama fungsi dan semua karakter ekspresi harus secara konsisten cased. Misalnya, kata kunci sementara harus ditulis sebagai sementara, dan tidak dapat ditulis sebagai sementara atau sementara.
Tetapi harus dicatat bahwa HTML tidak sensitif terhadap kasus (meskipun XHTML berbeda), dan mudah untuk bingung karena terkait erat dengan klien JavaScript. Misalnya, dalam acara pemrosesan yang ditetapkan oleh HTML, atribut OnClick dapat ditulis sebagai OnClick, tetapi dalam JavaScript, itu dapat ditulis sebagai OnClick.
II Spaces, Line Breaks, dan Format Controller
Javascript mengabaikan ruang antara token dalam program. Dalam kebanyakan kasus, JavaScript juga mengabaikan jeda garis. Karena spasi dan jeda garis dapat digunakan sesuka hati dalam kode, indentasi yang rapi dan konsisten dapat digunakan pada satu waktu untuk membentuk gaya penyandian yang terpadu, meningkatkan keterbacaan kode.
JavaScript selain mengidentifikasi karakter ruang (/U0020). JavaScript juga menampilkan karakter berikut yang menunjukkan spasi: karakter tab horizontal (/u0009), karakter tab vertikal (/u000b), karakter pembaruan halaman (/u000c), karakter whitespace non-intericrupted (/U00A0), endian tag (/ufeff), dan karakter dalam semua kategori ZS di unicodeD. JavaScript mengenali karakter berikut sebagai karakter akhir: line break (/u000a), simbol carriage return (/u000d), pemisah line (/u2028), dan pemisah segmen (/u2029). Karakter pengembalian carriage dan karakter istirahat garis diuraikan menjadi karakter akhir garis tunggal.
Karakter Kontrol Format Unicode (kelas CF), seperti "Tulis tanda dari kanan ke kiri" (/U200F) dan "Tulis tanda dari kiri ke kanan" (/U200E), mengontrol tampilan visual teks. Ini sangat penting untuk tampilan yang benar dari beberapa teks non-Inggris, yang dapat digunakan dalam komentar JavaScript, jumlah string langsung dan jumlah ekspresi langsung reguler, tetapi tidak dapat digunakan dalam pengidentifikasi (mis. Nama variabel), tetapi ada pengecualian untuk konektor nol-lebar (/u200d) dan non-non-connector tidak dapat digunakan. Juga disebutkan di atas bahwa byte order tanda format karakter kontrol (/ufeff) diperlakukan sebagai ruang.
III.Unicode Escape Sequence
Dalam beberapa perangkat keras dan perangkat lunak komputer, set lengkap karakter Unicode tidak dapat ditampilkan atau dimasukkan. Untuk mendukung programmer menggunakan teknologi lama, JavaScript mendefinisikan urutan khusus yang menggunakan 6 karakter ASCII untuk mewakili kode internal Unicode 16-bit. Urutan pelarian unicode ini diawali oleh /u, diikuti oleh tikus heksadesimal (ditunjukkan dengan angka dan huruf besar dan huruf kecil AF). Penulisan pelarian Unicode ini dapat digunakan dalam jumlah string langsung JavaScript, ekspresi reguler, dan pengidentifikasi (kecuali kata kunci). Misalnya, Unicode Escape of Character é ditulis sebagai /U00E9, dan dua string JavaScript berikut persis sama.
"kafe" === "caf/u00e9" => true
Penulisan Unicode Escape dapat muncul dalam komentar, tetapi karena JavaScript mengabaikan komentar, mereka hanya diperlakukan sebagai karakter ASCII dalam konteks dan tidak akan diikuti oleh karakter Unicode.
Standardisasi IIII
Unicode memungkinkan pengkodean karakter yang sama menggunakan beberapa metode. Misalnya, karakter é dapat menggunakan karakter unicode /U00E9, atau karakter AS ASCII yang biasa dapat digunakan untuk mengikuti simbol nada /U0301. Dalam editor teks, hasil yang ditampilkan oleh dua penyandian ini persis sama, tetapi representasi pengkodean binernya berbeda dan tidak sama di komputer. Standar Unicode mendefinisikan format kode yang disukai untuk karakter indeks dan menyediakan metode pemrosesan standar untuk mengubah teks menjadi format standar yang cocok untuk perbandingan, dan tidak akan lagi menstandarkan representasi, string, atau ekspresi reguler lainnya.
2. Komentar
JavaScript mendukung dua metode komentar. Teks setelah "//" di akhir baris akan diabaikan oleh JavaScript sebagai komentar.
Selain itu, teks antara / * dan * / juga digunakan sebagai komentar. Komentar semacam ini dapat ditulis lintas baris, tetapi tidak ada komentar bersarang.
// Komentar baris tunggal
/*
*
*
*
*/
3. Kuantitas Langsung
Kuantitas langsung yang disebut (literal) adalah nilai data yang langsung digunakan dalam program. Kuantitas langsung tercantum di bawah ini.
Salinan kode adalah sebagai berikut:
12 // angka
1.2 // desimal
"Hllo World" // Teks String
'hai' // string lain
Benar // Boolean
false // boolean
/javascript /GI // ekspresi reguler kuantitas langsung (digunakan sebagai pencocokan pola)
null // kosong
Bab 3 akan menjelaskan secara rinci jumlah langsung angka dan string. Kuantitas langsung dari ekspresi reguler akan dijelaskan dalam Bab 10. Lebih banyak ekspresi kesejahteraan dapat ditulis sebagai array atau objek secara langsung.
{x: 1, y: 2} // objek
[1,2,3,4,5] // Array
4. Pengidentifikasi dan kata -kata yang dicadangkan
Pengidentifikasi adalah nama. Dalam JavaScript, pengidentifikasi digunakan untuk memberi nama variabel dan fungsi, atau untuk menandai posisi lompatan dalam pernyataan loop tertentu dalam kode JavaScript. Pengidentifikasi JavaScript harus dalam huruf. Tanda garis bawah, atau dolar dimulai. Karakter selanjutnya bisa menjadi huruf. nomor. Tanda bawah atau dolar (angka tidak diizinkan muncul sebagai inisial, javascript dapat dengan mudah membedakan pengidentifikasi dari angka), dan berikut ini adalah pengidentifikasi hukum
Salinan kode adalah sebagai berikut:
my_variable_name
B13
_contoh
$ str
Untuk portabilitas dan kemudahan penulisan, kami biasanya hanya menggunakan huruf dan angka ASCII untuk menulis pengidentifikasi. Maka perlu dicatat bahwa JavaScript memungkinkan huruf dan angka dalam seluruh rangkaian karakter unicode di pengidentifikasi (dari teknologi ke ecmascript memungkinkan kelas MN, kelas MC dan kelas P dari mekanisme karakter unicode untuk muncul setelah karakter pertama pengidentifikasi). Oleh karena itu, pemrogram dapat menggunakan bahasa non-Inggris atau simbol matematika untuk menulis pengidentifikasi.
Salinan kode adalah sebagai berikut:
var sá = true;
var π = 3.14;
JavaScript mengeluarkan beberapa pengidentifikasi sebagai kata kunci, sehingga nama tidak dapat lagi menggunakan kata kunci ini sebagai pengidentifikasi dalam program.
Salinan kode adalah sebagai berikut:
merusak
kasus
menangkap
Lanjutkan
bawaan
hapus hapus
Mengerjakan
kalau tidak
Akhirnya
untuk
fungsi
jika
di dalam
contoh dari
baru
Kembali
mengalihkan
Ini
melemparkan
mencoba
tipeof
var
ruang kosong
Ketika
dengan
Javascript Cadangan Kata -kata
Kelas Ekspor Enum
Ekspor memperluas impor super
Juga, kata kunci ini legal dalam javascript normal, tetapi kata -kata yang dicadangkan dalam mode ketat
Implement Biarkan Paket Antarmuka Hasil Publik Pribadi
statis yang dilindungi
Dalam mode ketat yang sama, pengidentifikasi berikut dibatasi secara ketat, tetapi nama variabel, nama parameter dan nama fungsi tidak dapat digunakan.
Argumen evaluasi
Implementasi spesifik dari JavaScript dapat mendefinisikan variabel dan fungsi global yang unik. Setiap server JavaScript Running Environment (Client) spesifik, dll., Memiliki daftar atribut globalnya sendiri, yang perlu diingat. (Objek jendela untuk memahami daftar variabel dan fungsi global yang didefinisikan dalam klien javascript)
5. titik koma opsional
Seperti banyak bahasa pemrograman, JavaScript menggunakan titik koma (;) untuk memisahkan pernyataan. Ini sangat penting untuk meningkatkan keterbacaan dan kerapian kode. Akhir dari pernyataan tanpa pemisah menjadi awal dari pernyataan berikutnya, dan sebaliknya.
Dalam JavaScript, setiap pernyataan mengambil satu baris, dan titik koma antara pernyataan biasanya dapat dihilangkan (titik koma sebelum kawat gigi "}" di akhir program juga dapat dihilangkan). Banyak programmer JavaScript (termasuk contoh kode buku ini) menggunakan titik koma untuk secara jelas menandai akhir dari sebuah pernyataan, bahkan ketika titik koma tidak sepenuhnya diperlukan. Gaya lain adalah menghilangkan titik koma ketika mereka dapat dihilangkan, dan hanya menggunakan titik koma ketika mereka harus digunakan. Terlepas dari gaya pemrograman, ada beberapa detail yang harus diperhatikan tentang JavaScript.
Kode berikut, titik koma pertama dapat dihilangkan
a = 3;
B = 4;
Namun, jika ditulis dalam format berikut, titik koma pertama tidak dapat dihilangkan.
a = 3; B = 4;
Perlu dicatat bahwa JavaScript tidak mengisi titik koma di semua Newline: JavaScript akan mengisi titik koma hanya ketika kode tidak diuraikan secara normal tanpa titik koma. Dengan kata lain (mirip dengan dua pengecualian dalam kode berikut), jika pernyataan saat ini dan karakter non-ruang berikutnya tidak dapat diuraikan secara keseluruhan, JavaScript akan mengisi titik koma pada akhir pernyataan saat ini. Lihat kode berikut
var a
A
=
3
Console.log (A)
JavaScript parses sebagai
var a; a = 3; console.log (a);
JavaScript menambahkan titik koma ke baris pertama. Tanpa titik koma, JavaScript tidak dapat menguraikan var aa dalam kode. A kedua dapat digunakan sebagai pernyataan "A;", tetapi JavaScript tidak mengisi titik koma di akhir baris kedua. Karena dapat diuraikan dengan konten baris ketiga menjadi "A = 3;" .
Aturan yang terpisah dari beberapa pernyataan akan mengarah pada beberapa situasi yang tidak terduga. Kode istirahat ini dibagi menjadi dua baris, yang tampaknya menjadi dua pernyataan independen.
var y = x + f
(a+b) .tostring ()
Kurung pada baris kedua membentuk panggilan fungsi dengan F pada baris pertama. JavaScript akan menganggap kode ini sebagai
var y = x+f (a+b) .toString ();
Jelas, niat asli kode tidak seperti ini. Agar kode di atas diuraikan menjadi dua pernyataan yang berbeda, Anda harus secara manual mengisi titik titik koma dari perilaku tersebut.
Secara umum, jika sebuah pernyataan dimulai dengan ([ / + -, kemungkinan besar akan diuraikan dengan pernyataan sebelumnya. Pernyataan yang dimulai dengan / + - tidak terlalu umum, tetapi pernyataan yang dimulai dengan ([sangat umum. Setidaknya dalam beberapa gaya penyandian JavaScript. Beberapa program yang diketahui secara konservatif;
Jika pernyataan saat ini dan pernyataan baris berikutnya tidak dapat digabungkan dan diuraikan. JavaScript mengisi titik koma setelah baris pertama, yang merupakan aturan umum, tetapi memiliki dua kolom di luar. Pengecualian pertama melibatkan ReturnM, Birak, ia melanjutkan pernyataan jika ketiga kata kunci ini diikuti oleh jeda garis. JavaScript akan mengisi titik koma di Newline. Misalnya
Misalnya
Kembali
BENAR;
Dan JavaScript diuraikan
kembali; bak;
Dan arti asli dari kode adalah
Kembalikan kebenaran;
Dengan kata lain, tidak mungkin ada jeda garis antara ekspresi berikutnya dengan pengembalian, istirahat, dan contuine. Jika istirahat garis ditambahkan, program hanya dapat melaporkan kesalahan dalam keadaan khusus. Selain itu, debugging program ini tidak nyaman.
Contoh kedua adalah ketika datang ke operator ++, simbol ekspresi ini dapat mewakili awalan dan akhiran dari ekspresi pengidentifikasi. Jika diikuti oleh ekspresi, jika digunakan sebagai ekspresi akhiran. Itu dan ekspresi harus dianggap sebagai satu baris. Kalau tidak, titik koma akan diisi di ujung garis.
Salinan kode adalah sebagai berikut:
X
++
Y y
Kode di atas diuraikan sebagai
Salinan kode adalah sebagai berikut:
X;
++ y