Kata -kata sebelumnya
JavaScript adalah bahasa sederhana dan bahasa yang kompleks. Ini sederhana karena hanya perlu waktu sejenak untuk belajar menggunakannya; Ini rumit karena butuh bertahun -tahun untuk benar -benar menguasainya. Bahkan, insinyur front-end merujuk pada insinyur JavaScript sebagian besar. Sangat mudah untuk memulai dengan front-end dan sulit dikuasai. Ini mengacu pada front-end, dan yang lebih penting, JavaScript. Artikel ini adalah artikel pertama dalam tata bahasa dasar JavaScript - Struktur Leksikal
Hubungan dengan Java
Ada pepatah seperti itu tentang JavaScript: hubungan antara Java dan JavaScript adalah hubungan antara Lei Feng dan Lei Feng Tower. Jadi apakah itu penting?
Nama awal Javascript adalah Livescript. Alasan mengapa saya memilih JavaScript karena nama resminya mungkin untuk membuatnya terdengar seperti keluarga yang terkenal. Selain sintaks yang terlihat mirip dengan Java, JavaScript dan Java adalah dua bahasa pemrograman yang sama sekali berbeda.
Bahasa pemrograman dibagi menjadi dua kategori: ditafsirkan dan disusun. Bahasa seperti Java atau C ++ memerlukan kompiler. Kompiler adalah program yang dapat menerjemahkan kode sumber yang ditulis dalam bahasa tingkat tinggi seperti Java ke dalam file yang dieksekusi langsung di komputer. Bahasa pemrograman yang ditafsirkan tidak memerlukan kompiler - mereka hanya membutuhkan penerjemah, dan juru bahasa JavaScript di browser akan membaca langsung ke kode sumber dan menjalankannya.
Java secara teoritis dapat digunakan di hampir semua lingkungan, tetapi JavaScript cenderung diterapkan hanya pada browser web. Selain itu, dalam bahasa JavaScript, fungsi adalah tipe data independen, menggunakan rantai warisan berdasarkan objek prototipe, dan sintaks JavaScript jauh lebih bebas daripada Java.
Pada dasarnya, makna asli dari nama JavaScript adalah "sangat mirip dengan bahasa skrip java"
definisi
JavaScript adalah bahasa pemrograman yang dinamis dan lemah yang ditafsirkan yang sangat cocok untuk gaya pemrograman yang berorientasi pada objek dan fungsional. Sintaks JavaScript berasal dari Java, fungsi kelas satu berasal dari skema, dan warisan berbasis prototipe berasal dari diri sendiri
JavaScript digunakan untuk meningkatkan efek dinamis dari halaman dan mewujudkan interaksi real-time dan dinamis antara halaman dan pengguna.
Javascript terdiri dari tiga bagian: ecmascript, dom dan bom
[1] ECMascript didefinisikan oleh ECMA-262 dan menyediakan fungsi bahasa inti (ECMA adalah Asosiasi Produsen Komputer Eropa)
[2] DOM (Model Objek Dokumen) Model Objek Dokumen, Menyediakan metode dan antarmuka untuk mengakses dan memanipulasi konten halaman web
[3] BOM (Model Objek Browser) Model Objek Browser, Memberikan Metode dan Antarmuka untuk Berinteraksi dengan Browser
Sensitivitas kasus
Mengenai bahasa JavaScript, tidak peduli berapa banyak ditekankan, itu adalah sensitivitas kasus. Kata kunci, variabel, nama fungsi, dan semua pengidentifikasi dalam JavaScript harus konsisten di huruf besar dan kecil.
// 'online', 'online', 'online', 'online' adalah empat nama variabel yang berbeda
[Catatan] HTML tidak sensitif
Kata yang dipesan
Seperti bahasa pemrograman lainnya, JavaScript mempertahankan beberapa pengidentifikasi untuk penggunaannya sendiri. Kata -kata yang dicadangkan ini tidak dapat digunakan sebagai pengidentifikasi biasa. Karena menyesatkan banyak buku referensi, tampaknya kata -kata dan kata kunci yang dicadangkan dipisahkan, tetapi pada kenyataannya, tidak. Kata kunci hanyalah bagian dari kata -kata yang dipesan. Kata -kata yang dicadangkan termasuk kata kunci, kata -kata yang dicadangkan di masa depan, literal kosong, dan literal boolean
Cadangan cadangan ::
Kata kunci
Futurereservedword
Nullliteral
Booleanliteral
Kata kunci
break do instanceof typeof
case lain var baru
Tangkap akhirnya return void
Lanjutkan untuk beralih sementara
Debugger berfungsi dengan ini
default jika lempar hapus
dalam mencoba
Kata -kata yang dicadangkan di masa depan
Kata -kata berikut digunakan sebagai kata kunci ekstensi yang disarankan dan karenanya dicadangkan sehingga ekstensi ini dapat diadopsi di masa depan.
kelas enum memperluas super
Impor Ekspor Const
Versi ecmascript3
Di atas adalah kata -kata yang dicadangkan untuk ecmascript5, tetapi kata -kata yang dipesan dalam versi ecmascript3 berbeda. Jika Anda ingin kode berjalan pada juru bahasa berdasarkan implementasi ECMASCRIPT3, Anda harus menghindari menggunakan kata -kata yang dipesan sebagai pengidentifikasi berikut.
Abstrak Boolean Byte Char Class Constdouble Enum Ekspor Memperluas Float Final
goto mengimplementasikan interfacelong paket asli private lindung
lemparan sementara yang disinkronkan secara statis public static volatile
Variabel dan fungsi yang telah ditentukan sebelumnya
Selain itu, JavaScript telah menentukan banyak variabel dan fungsi global, dan harus menghindari menggunakan nama mereka sebagai nama pengidentifikasi
Argumen Array Boolean Tanggal Decodeuri Decodeuricomponent Encodeuriencodeuricomponent kesalahan eval evaluasi fungsi evaluasi infinity isfinite
Isnan Json Math Nan Nomor Objek Parsefloat Parseint RangeRror
ReferenceError RegExp String SyntaxError TypeError Urierror Tidak Ditentukan
Komentar
Tidak semua pernyataan perlu ditafsirkan dan dieksekusi oleh juru bahasa JavaScript. Terkadang Anda perlu menulis beberapa informasi dalam skrip untuk referensi atau pengingat Anda sendiri, dan berharap bahwa juru bahasa JavaScript dapat secara langsung mengabaikan informasi ini. Jenis informasi ini adalah komentar
Komentar dapat secara efektif membantu memahami aliran kode, dan mereka memainkan peran catatan hidup dalam kode, yang dapat membantu kita mencari tahu apa yang dilakukan skrip.
[Catatan] Komentar harus menggambarkan kode secara akurat. Komentar yang tidak berguna lebih buruk dari tidak ada komentar
Ada banyak cara untuk memasukkan komentar dalam skrip JavaScript, termasuk komentar satu baris, komentar multi-line, dan komentar bergaya HTML
【1】 Komentar baris tunggal dimulai dengan dua tebasan
// Komentar baris tunggal
【2】 Komentar multi-line juga disebut komentar level blok, dimulai dengan slash dan tanda bintang/*, diakhiri dengan tanda bintang dan slash*//
/*
Ini adalah komentar multi-line
*/
[Catatan] Karakter-karakter dalam komentar tingkat blok/ **/ dapat juga muncul dalam literal ekspresi reguler, jadi komentar tingkat blok tidak aman untuk blok kode komentar.
/*
var rm_a = /a*/.match(s);
*/
【3】 Komentar gaya HTML hanya berlaku untuk komentar satu baris. Faktanya, juru bahasa JavaScript menangani <!- dan //
<!- Ini adalah komentar di JavaScript
Jika dalam dokumen HTML, Anda juga perlu mengakhiri komentar dengan ->
<!-Ini adalah komentar di html->
Tapi JavaScript tidak memerlukan ini, itu akan memperlakukan -> sebagai bagian dari konten komentar
[Catatan] HTML memungkinkan komentar seperti ini di atas untuk menjangkau beberapa baris, tetapi setiap baris komentar tersebut harus ditambahkan sebagai bendera di awal komentar "<!-"
<!- Saya berkomentar 1
<!- Saya berkomentar 2
<!- Saya berkomentar 3
Karena penerjemah JavaScript berbeda dari HTML ketika berurusan dengan komentar dalam gaya ini, yang terbaik adalah tidak menggunakannya dalam skrip JavaScript untuk menghindari kebingungan.
Komentar gaya html
Whitespace
Kosong biasanya tidak ada artinya, kadang -kadang mereka harus dipisahkan dengan menggunakannya, jika tidak mereka akan digabungkan menjadi simbol.
var itu = ini;
Kosong antara VAR dan itu tidak dapat dilepas, tetapi kosong lainnya dapat dilepas
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 untuk membentuk gaya pengkodean yang terpadu, sehingga meningkatkan keterbacaan kode
// Tingkatkan keterbacaan kode dengan menambahkan karakter whitespace untuk (var i = 1; i <10; i ++) {//}JavaScript mengenali yang berikut sebagai karakter whitespace whitespace
/U0009 Karakter tab horizontal <ab>
/U000B Karakter Tab Vertikal <VT>
/U000C Page Change <ff>
/U0020 Karakter Ruang <sp>
/U00A0 Karakter Ruang Non-Interupsi <NBSP>
/tanda urutan karakter ufeff
JavaScript mengenali karakter berikut sebagai garis terminator lineterminator
/U000A Karakter Newline <lf>
/U000D carriage return karakter <r>
/U2028 Pembatas Baris <LS>
/u2029 Paragraf Splitter <Z>
Titik titik koma opsional
JavaScript menggunakan titik koma; memisahkan pernyataan, yang sangat penting untuk meningkatkan keterbacaan dan kerapian kode. Tapi JavaScript tidak mengisi titik koma di semua Newline. Hanya ketika kode tidak dapat diuraikan dengan benar tanpa titik koma, JavaScript akan mengisi titik koma.
var a
A
=
3
Console.log (A)
JavaScript parses sebagai:
var a;
a = 3;
console.log (a);
Aturan pernyataan pemisahan ini dapat menyebabkan beberapa situasi yang tidak terduga
var y = x + f
(a+b) .tostring
JavaScript parses sebagai:
var y = x + f (a + b) .tostring
Oleh karena itu, untuk memungkinkan kode di atas diurai menjadi dua pernyataan yang berbeda, titik koma eksplisit di ujung garis harus diisi secara manual di ujung garis
Dua pengecualian
Jika pernyataan saat ini dan pernyataan baris berikutnya tidak dapat digabungkan dan diuraikan, JavaScript akan mengisi titik koma setelah baris pertama, yang merupakan aturan umum, tetapi ada dua pengecualian
[1] Pengecualian pertama adalah dalam skenario yang melibatkan pengembalian, istirahat, lanjutkan, lempar pernyataan. Jika keempat kata kunci ini diikuti oleh jeda garis, JavaScript akan mengisi titik koma di jeda garis
Kembali
BENAR;
JavaScript parses sebagai:
kembali; benar;
Dan arti asli dari kode adalah:
Kembali Benar;
[2] Pengecualian kedua adalah bahwa ketika operator ++ dan - terlibat, jika digunakan sebagai ekspresi akhiran, itu harus sama dengan garis ekspresi. Kalau tidak, akhir garis akan mengisi titik koma, dan ++ atau - akan digunakan sebagai operator awalan untuk baris kode berikutnya dan diuraikan dengannya
X
++
y
JavaScript parses sebagai:
x; ++ y;
Dan arti asli dari kode adalah:
x ++; y;
Meskipun titik koma tidak diperlukan, yang terbaik adalah tidak menghilangkannya, karena menambahkan titik koma dapat menghindari banyak kesalahan, dan tidak memiliki titik koma di ujung baris kode akan menyebabkan kesalahan kompresi. Menambahkan titik koma juga akan meningkatkan kinerja kode dalam beberapa kasus, karena parser tidak lagi harus menghabiskan waktu menebak di mana untuk memasukkan titik koma.