0const 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9const 0const 1 Show
Pengidentifikasi JavaScriptIdentifier adalah nama yang diberikan kepada entitas seperti variabel, fungsi, kelas, dll Aturan untuk Memberi Nama Pengidentifikasi JavaScript Aturan untuk menulis identifier adalah
Catatan. Meskipun Anda dapat memberi nama pengidentifikasi dengan cara apa pun yang Anda inginkan, sebaiknya berikan nama pengidentifikasi deskriptif Jika Anda menggunakan pengidentifikasi untuk variabel untuk menyimpan jumlah siswa, lebih baik menggunakan siswa atau jumlah Siswa daripada x atau n Catatan. Artikel ini didasarkan pada spesifikasi ECMAScript 5. Untuk versi ES2015 yang diperbarui, lihat Nama variabel JavaScript yang valid di ES2015 Tahukah Anda 6 adalah JavaScript yang valid secara sintaksis? Kata-kata yang dicadangkanSkrip ECMA 5. 1 spesifikasi _7 adalah Spesifikasi menjelaskan empat kelompok kata yang dipesan. kata kunci, kata cadangan masa depan, literal nol, dan literal boolean Kata kunci adalah token yang memiliki arti khusus dalam JavaScript. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, Kata-kata cadangan masa depan adalah token yang dapat menjadi kata kunci dalam revisi ECMAScript di masa mendatang. 6, 7, 8, 9, 0, 1, dan 2. Beberapa kata cadangan di masa mendatang hanya berlaku dalam mode ketat. 3, 4, 5, 6, 7, 8, 9, 0, dan 1Literal nolnya adalah, sederhananya, 2Ada dua literal boolean. 3 dan 4Tak satu pun di atas diperbolehkan sebagai nama variabel Kata-kata non-reserved yang bertindak seperti kata-kata yang dicadangkanProperti 5, 6, dan 7 dari objek global adalah properti yang tidak dapat diubah atau hanya-baca di ES5. Jadi meskipun 8 dalam lingkup global tidak akan menimbulkan kesalahan, itu tidak akan benar-benar melakukan apa pun. Untuk menghindari kebingungan, saya sarankan untuk menghindari penggunaan nama variabel ini
Dalam mode ketat, 9 dan 0 juga sebagai nama variabel. (Mereka bertindak seperti kata kunci dalam kasus itu. )Spesifikasi ES3 lama mendefinisikan beberapa kata yang dicadangkan yang bukan lagi kata yang dicadangkan di ES5. 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, and 6. Mungkin ide yang bagus untuk menghindari ini juga, untuk kompatibilitas mundur yang optimalNama pengenal yang validSeperti disebutkan sebelumnya, spesifikasi membedakan antara nama pengidentifikasi dan pengidentifikasi. Pengidentifikasi membentuk subset dari nama pengidentifikasi, karena pengidentifikasi memiliki batasan tambahan yang tidak diperbolehkan. Misalnya, 2 adalah nama pengidentifikasi yang valid, tetapi pengidentifikasinya tidak validJadi, apa yang diperbolehkan dalam nama pengidentifikasi? Pengidentifikasi harus dimulai dengan 8, 9, atau karakter apa pun dalam kategori Unicode “Huruf besar (Lu)”, “Huruf kecil (Ll)”, “Huruf judul (Lt)”, “Huruf pengubah (Lm)”, “Lainnya Sisa string dapat berisi karakter yang sama, ditambah karakter non-penggabung dengan lebar nol U+200C, karakter penggabung dengan lebar nol U+200D, dan karakter dalam kategori Unicode “Tanda tanpa spasi (Mn)”, “Penggabungan spasi Itu dia, sungguh. Namun ada beberapa hal yang perlu diperhatikan… Seperti yang Anda ketahui, JavaScript menggunakan UCS-2 secara internal, dan spesifikasinya mendefinisikan "karakter" sebagai berikut
Ini secara efektif berarti bahwa (mis. g. _0, i. e. Ideograf Kompatibilitas U+2F800 CJK, yang tercantum dalam kategori [Lo]) tidak diizinkan dalam nama pengidentifikasi, karena JavaScript menginterpretasikannya sebagai dua bagian pengganti individu (mis. g. _1) yang tidak cocok dengan salah satu kategori Unicode yang diizinkanGotcha lain adalah sebagai berikut
Artinya, Anda dapat menggunakan _5 dan 6 secara bergantian. Demikian pula, karena _7 tidak valid, demikian juga 8Untuk browser web, ada aturan ini, yaitu ketika kata-kata yang dicadangkan digunakan. Sebagian besar browser mendukung pengidentifikasi yang unescape ke kata yang dicadangkan, selama setidaknya satu karakter diloloskan menggunakan urutan pelolosan Unicode. Misalnya, _9 tidak akan berfungsi, tetapi e. g. 00 akan — meskipun tegasnya, spesifikasi ECMAScript melarangnya. Penggunaan selanjutnya dari pengidentifikasi tersebut juga harus memiliki setidaknya satu karakter yang lolos (jika tidak, kata yang dicadangkan akan digunakan sebagai gantinya), tetapi tidak harus karakter yang sama yang awalnya digunakan untuk membuat pengidentifikasi. Misalnya, _01 akan memperingatkan 02. Ini sangat membingungkan, jadi saya tidak akan merekomendasikan mengandalkan peretasan ini. Untungnya, sepertinya spesifikasi ECMAScript 6 secara eksplisit akan membuat perilaku ini tidak sesuai. Firefox/Spidermonkey, Safari/JavaScriptCore, dan IE/Chakra telah menghentikan perilaku ini
Jadi, 04 dan 05 adalah dua nama variabel yang berbeda, meskipun keduanya setara setelah normalisasi UnicodeContohBerikut ini adalah semua contoh nama variabel JavaScript yang valid
Beberapa di antaranya tidak berfungsi di semua browser/lingkungan — setidaknya, belum. Lihat bug WebKit/JavaScriptCore #79353 dan #78908 (sekarang telah diperbaiki), bug Chrome/V8 #1965 (sekarang telah diperbaiki) dan #1958 (sekarang telah diperbaiki), bug Internet Explorer/Chakra #725622, bug Opera/Carakan DSK-358119 dan DSK Saya sendiri memperbaiki beberapa bug, dengan menulis tambalan untuk V8, WebKit/JavaScriptCore, Esprima, dan JSHint Validator nama variabel JavaScriptBahkan jika Anda mempelajari aturan ini dengan hati, hampir tidak mungkin untuk menghafal setiap karakter dalam kategori Unicode berbeda yang diizinkan. Jika Anda meringkas semua aturan ini dalam satu ekspresi reguler khusus ASCII untuk JavaScript, panjangnya akan menjadi 11.236 karakter Untuk alasan itu, saya membuat mothereff. in/js-variables, alat yang memudahkan Anda memeriksa apakah string yang diberikan adalah nama variabel yang valid dalam JavaScript Jika nama variabel yang valid dimasukkan, alat akan memeriksa apakah browser yang Anda gunakan menangani pengidentifikasi dengan benar. Jika tidak, itu akan menampilkan peringatan, mendorong Anda untuk mengajukan bug browser Validator akan memperingatkan Anda jika kata khusus ECMAScript 3 (yang bukan kata khusus lagi) dimasukkan. Coba, misalnya Alat ini menggunakan Unicode 7. 0. basis data 0 karakter. Tentu saja, belum semua mesin JavaScript memiliki tingkat dukungan Unicode yang sama. Seperti yang dikatakan spek
Untuk alasan ini, validator akan memperingatkan Anda jika nama variabel tidak valid saat Unicode 3. 0 basis data digunakan. Coba, misalnya Tentang sayaHai, yang di sana. Saya Mathias. Saya bekerja di Chrome DevTools dan mesin JavaScript V8 di Google. HTML, CSS, JavaScript, Unicode, performa, dan keamanan membuat saya bersemangat. Ikuti saya di Twitter, Mastodon, dan GitHub Philip Tellis menulis. Pustaka statistik yang saya buat untuk Node memiliki fungsi bernama 08 dan 09 dengan semantik yang jelas;)Enko terus menulis. 10 adalah nama metode Ruby yang valid
Ini juga berlaku di Python 3, dan sepertinya berfungsi di PHP juga
akavi menulis. Bagi siapa pun yang penasaran, 'ಠ' diucapkan sebagai 'Ta' (bahasa Kannada). . ) Secara lebih deskriptif, ini adalah plosif palatal sub-apikal tanpa suara yang disedot. Jika Anda ingin mengeluarkan suara, posisikan lidah Anda seperti mencoba memasukkannya ke dalam tenggorokan. Bagian bawah lidah harus menyentuh bagian atas mulut Anda. Lalu, buat suara 'tuh'. Jika Anda melakukannya dengan benar, itu akan terdengar hampa dan 'lebih keras' daripada suara 't' bahasa Inggris normal Alex menulis. Saya bahkan tidak pernah memikirkan tentang 11 sebelumnya - itu luar biasaKragen Javier Sitaker menulis. Penggunaan yang paling sah untuk ini adalah untuk ruang nama tingkat atas, yang harus pendek atau mereka akan membuang kode Anda seperti orang gila. jQuery sudah mengambil _8, dan Underscore mengambil 9. Mungkin _14, 15, 16, 17, 18, 19, 20 (bukan 21, itu ilegal. ), 22, 23, 24, 25, 26, 27, _______________23, ________33333333, Tanpa alasan yang jelas, _35 dan 36 adalah ilegal. Saya pikir strategi Plan9 untuk mempertimbangkan karakter non-ASCII sebagai karakter pengidentifikasi secara default mungkin lebih baik daripada mengubah tata bahasa setiap kali standar Unicode revsJames terus menulis. Terima kasih telah memposting artikel ini. Bit Cthulhu terakhir itu gila maht menulis di. Plan9 menggunakan UTF-8, bukan Unicode Kragen Javier Sitaker menulis. Itu seperti mengatakan bahwa AS menggunakan dolar, bukan uang oroce menulis. Luar biasa. Omong-omong, ini juga berfungsi di Perl
Nick terus menulis. Apakah ini termasuk karakter Georgia?
Atau browser saya? Mathias terus menulis. Ya, benar. 'ლ' adalah huruf Georgia las (U+10DA) Dev menulis. Apakah ada minifier yang memanfaatkan ini? Mathias terus menulis. Perhatikan bahwa sementara e. g. 37 adalah satu simbol, dalam pengkodean UTF-8. Jadi minifiers mungkin lebih baik dengan karakter ASCII sajaAnthony Mills menulis. Selain itu, jika Anda menggunakan karakter yang funky dan seseorang mengacaukan pengaturan pengodean karakter, Anda akan terjebak. Sebaiknya gunakan rentang normal untuk karakter saja Leo Balter menulis. Akhirnya variabel manusia salju saya
Mathias terus menulis. Sayangnya _38 bukan pengenal yang valid. LihatScott Murphy menulis. 39, 40, 41, 42, 43, 44, 45, 46, ________43___ valid J____47 semuanya terlihat seperti operator variabelSaatnya menulis kode yang membingungkan?
kow terus menulis. Elegan, valid, dan tersedia di sebagian besar keyboard. )
weiß menulis. 48 jelas bukan beta, yang akan menjadi 49. Dan ya, itu tersedia di semua keyboard YunaniThomas menulis. Bagaimana Anda bisa melupakan spasi?
;) Julien menulis. Sayangnya _50 tidak bekerja. (Robert Gust-Bardon menulis. Tn. Bynens, pekerjaan Anda terbukti bermanfaat dalam upaya memperbaiki masalah #222 dan #324 di UglifyJS Mathias terus menulis. Senang mendengar. . ) Barney menulis. Nah, itu salah satu rasa kejahatan tertentu — saya banyak menggunakan objek tingkat atas 51 & 52 >. DMatheus menulis. Kode berikut ini juga valid 0Craig menulis. Terima kasih telah meluangkan waktu untuk memparafrasakan Wikipedia Kecuali untuk semua yang bukan orang Jerman Matty menulis. Apa yang Harus Dilakukan?. . -) Mariusz Nowak menulis. Sebaiknya tambahkan beberapa kata tentang nama properti yang valid, di ES5, sebenarnya tidak ada batasan dan kami dapat menggunakan kata kunci untuk mereka 1Mathias terus menulis. Saya telah menulis seluruh posting tentang itu. Nama properti/kunci objek yang tidak dikutip dalam JavaScript Evi1M4chine menulis. Yang valid favorit saya 2Saya dapat menambahkan panah itu ke karakter apa pun. Dan itu adalah kunci di keyboard saya (NEO 2. 0 tata letak). Saya membuat panah kedua dan ketiga hanya dengan menekan tombol panah berulang kali. Saya bahkan bisa melakukannya lebih dari 3 kali, tetapi tidak akan terlihat. (Saya harus menggunakannya untuk menjebak orang yang membaca kode saya. ;) Saya berharap 53 dan 54, dll akan valid. Mereka jauh lebih masuk akal daripada ________108______8. /
Berapa banyak kata khusus yang ada di JavaScript?Ada total 63 kata yang dicadangkan dalam JavaScript.
Apakah JavaScript memiliki kata-kata khusus?JavaScript memiliki sejumlah kata khusus yang tidak dapat Anda gunakan sebagai pengidentifikasi . Kata-kata yang dicadangkan memiliki arti khusus untuk bahasa JavaScript, karena merupakan bagian dari sintaks bahasa. Menggunakan kata yang dicadangkan menyebabkan kesalahan kompilasi saat memuat skrip Anda.
Ada berapa kata cadangan?Ada enam jenis kata khusus. Kata kunci. Kata-kata opsional. Konstanta kiasan.
Berapa banyak jenis kata kunci yang ada di JavaScript?Kata kunci JavaScript adalah kata-kata yang dicadangkan, yang tidak dapat kita gunakan untuk menamai variabel atau fungsi. Ada total 63 kata kunci yang disediakan JavaSscript untuk programmer. |