Kata -kata sebelumnya
Sebagian besar operator dalam JavaScript diwakili oleh tanda baca, dan beberapa diwakili oleh kata kunci. Sintaks mereka ringkas, tetapi jumlah mereka cukup besar. Operator selalu mengikuti beberapa sintaks tetap. Hanya dengan memahami dan menguasai konten ini dapat digunakan operator dengan benar. Artikel ini terutama akan memperkenalkan tinjauan sintaksis dari operator JavaScript
Jumlah operan
Ada 46 operator di JavaScript. Jika Anda mengklasifikasikannya sesuai dengan jumlah operan, kebanyakan dari mereka adalah operator biner. Operan mereka adalah dua, dan mereka menggabungkan dua ekspresi menjadi ekspresi kompleks.
1 + 2; true || PALSU;
Operator unary dalam JavaScript mengubah satu ekspresi menjadi ekspresi yang sedikit kompleks, terutama termasuk 9:
++ - - + ~! hapus tipe voida ++; typeof true;
JavaScript hanya memiliki satu operator ternary, yang merupakan operator penilaian bersyarat ?:, yang menggabungkan tiga ekspresi menjadi satu ekspresi
2> 1? 2: 1;
Prioritas
Operator Prioritas Mengontrol Urutan Eksekusi Operator, dan pelaksanaan operator dengan prioritas tinggi selalu mendahului operator dengan operator prioritas rendah.
46 operator dibagi menjadi 14 tingkat prioritas, dari tinggi ke rendah:
++ - - + ~! Hapus tipe void * / % + - << >> >>> <<=>> = instance dari in ==! = ===! == & ^ | && || ?: = * = / = % = + = - = & = ^ = | = << = >> = >>> =,
Dari tingkat prioritas operator 14 tingkat ini, kita dapat melihat:
Operator Unary> Operator Aritmatika> Operator Perbandingan> Operator Logis> Operator Tripartit> Operator Penugasan> Operator Koma
[Catatan] Operator inversi logis milik operator unary dan memiliki prioritas tertinggi
contoh
! 2 <1 && 4*3+1;
Situasi di atas lebih rumit, secara bertahap menguraikan perintah operasi
Pertama Hitung Operator Unary!,! 2; // Salah
// kemudian ekspresi menjadi false <1 && 4*3 + 1;
Hitung operator aritmatika 4*3+1; // 13
// kemudian ekspresi menjadi salah <1 && 13;
Hitung operator perbandingan <, false <1; // true
// Lalu ekspresi menjadi: true && 13; // 13
Tanda kurung dapat digunakan untuk secara paksa menentukan urutan operasi
2+3*5; // 17 (2+3)*5; // 25;
Ikatan
Operator memiliki dua jenis properti yang mengikat, satu diikat dari kiri ke kanan, dengan tanda L, dan yang lainnya terikat dari kanan ke kiri, dengan tanda R. Ikatan menentukan urutan operasi dalam beberapa ekspresi operator dengan prioritas yang sama.
Sebagian besar operator memiliki kombinasi dari kiri ke kanan, hanya operator unary, operator bersyarat dan operator penugasan memiliki kombinasi dari kanan ke kiri.
w = x + y + z; // setara dengan: w = ((x + y) + z);
w = x = y = z; // setara dengan: w = (x = (y = z));
q = a? B: C? D: E? f: g; // setara dengan: q = a? B: (C? D: (E? F: g));
Prioritas dan pengikatan operator menentukan urutan operasi mereka dalam ekspresi yang kompleks, tetapi ketika sub -ekspresi memiliki pengaruh timbal balik, urutan akan berubah.
contoh
a = 1; b = a +++a-- * a ++;
Pertama menganalisis ekspresi, dan sesuai dengan urutan prioritas, operator kenaikan, operator multiplikasi, operator tambahan dan operator penugasan masing -masing dihitung.
Pertama Hitung A ++; // Hasilnya adalah 1, A adalah 2
// ekspresi menjadi b = 1+a-- * a ++;
Hitung A-; // Hasilnya adalah 2, A adalah 1
// ekspresi menjadi b = 1+2 * a ++;
Hitung A ++; // hasil kedua adalah 1, A adalah 2
// Ekspresi menjadi B = 1 + 2 * 1;
Jadi, pada akhirnya a = 2; B = 3;
a = 1; b = a +++a-- * a ++; console.log (a, b); // 2 3
// Demikian pula a = 1; b = a-- * a +++a ++; console.log (a, b); // 2,1
jenis
Beberapa operator dapat bertindak pada tipe data apa pun, tetapi mereka masih ingin operan mereka menjadi data dari jenis yang ditentukan, dan sebagian besar operator mengembalikan nilai dari jenis tertentu. Pada tabel aturan operator di bawah ini, panah adalah jenis operan operator dan panah adalah jenis hasil operasi setelah panah adalah jenis hasil operasi.
【Lvalue】
Lvalue adalah istilah kuno yang berarti bahwa ekspresi hanya dapat muncul di sisi kiri operator.
Dalam JavaScript, Variabel, Properti Objek, dan Elemen Array semuanya adalah lvalues
Jenis operator operator kenaikan ++, penurunan operator- dan operator penugasan adalah lvalue
var a = 3; a ++; // 33-; // Laporkan kesalahan ({}). a+= '1'; // 'tidak terdefinisi1''test'-= 'test'; // Laporkan kesalahanTabel aturan operator
Jenis Operator Operator ++ Increment lval-> num-- DECREMENT LVAL-> NUM- NUMS INVERSE> NUM+ CONVERT KE NUMBER NUM-> NUM ~ INVERSE INT-> INT! Logis non-bool-> booldelete delete atribut lval-> booltypeof type deteksi any-> strvoid return tidak terdefinisi apa pun-> undef ****************************************************/% Multiply, Divide, dan Temukan Num yang Residual, Num, Num, Num Residual, Multiply, Divide, dan Temukan Numbual, Jumlah Sisa, num->num******************************************************************+ - Add and subtract num, num->num+ String concatenation str, str->str******************************************************<< left shift int, int->int>> signed right shift int, int->int>>> Unsigned SHIFT kanan int, int-> int ************************************************************* <<=>> = Bandingkan Nomor Urutan Num, Num-> Bool <=>> Bandingkan Urutan Alfabet STR, str-> Boolinstance of Test Obyek Kelas obj, func-> Boolin tes. str, obj-> bool ***************************************************************** any->bool********************************************************* & Bitwise and int, int->int************************************************************************ bitwise or int, int->int***************************************************************************************************************************************************************************|| Logika atau apa pun, ada-> *******************************************************? bool,any,any->any*************************************************************************************************************************************************************************** *******************************************************************************************************************************************************************************************************L *******************************************************************************************************************************************************************************************************L *******************************************************************************************************************************************************************************************************L *******************************************************************************************************************************************************************************************************L *******************************************************************************************************************************************************************************************************L *******************************************************************************************************************************************************************************************************L *****************************************************************************************************************************************************************************************************************************L
Tinjauan komprehensif di atas tata bahasa operator JavaScript adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.