Operator unary
Operator yang hanya dapat mengoperasikan satu nilai disebut operator unary.
Operator Unary adalah operator paling sederhana dalam ecmascript.
1. Penambahan dan Kurangi Operator
Peningkatan dan penurunan operator secara langsung meminjam dari C, dan masing-masing memiliki dua versi: pre-type dan post-type. Gu Mingsi mengatakan bahwa pra-tipe harus memberi jalan kepada variabel untuk dioperasikan, sedangkan pasca-tipe harus diikuti oleh variabel yang akan dioperasikan.
Jenis Depan:
var num1 = 1; var num2 = 2; var num3 = ++ num1 +num2; // 4
Jenis Belakang:
var num1 = 1; var num2 = 2; var num3 = num1 +++ num2; // 3
Dua kode di atas memiliki hasil yang berbeda, karena ada perbedaan yang sangat penting antara pasca-meningkat dan pra-pendakian dan penurunan, yaitu, pasca-pendarahan dan penurunan operasi dilakukan setelah pernyataan yang berisi mereka dievaluasi.
Lingkup aplikasi:
Pra-pendaratan dan pasca-pendapatan keempat operator berlaku untuk nilai apa pun. Ketika diterapkan pada nilai yang berbeda, operator ini mengonversi nilai seperti fungsi transformasi angka (), dan menambah dan mengurangi 1 setelah konversi.
2. Penambahan satu arah dan operator pengurangan
Penambahan dan pengurangan operator unary terutama digunakan untuk operasi aritmatika dasar, dan juga dapat digunakan untuk mengonversi tipe data (operator mengonversi nilai ini seperti fungsi transformasi angka ()).
Operator Boolean
Ada tiga operator boolean: non (tidak), dan (dan), atau (atau).
1. Logis non-logis
Non-operator logis diwakili oleh tanda seru (!) Dan dapat diterapkan pada nilai apa pun dalam ecmascript. Terlepas dari tipe data nilai ini, operator ini mengembalikan nilai boolean.
Menggunakan dua non-operator logis pada saat yang sama akan benar-benar mensimulasikan perilaku fungsi transformasi boolean ()
2. Logika dan
Logika dan operator diwakili oleh dua jumlah (&&), dan ada dua operan dan dapat diterapkan pada semua jenis operan. Operasi logika dan hubung singkat, yaitu, jika operan pertama dievaluasi sebagai salah, maka operan kedua tidak akan dievaluasi.
Ketika kedua nilai itu benar, hasilnya benar. Ketika dua nilai benar dan salah, hasilnya salah. Mengembalikan false ketika kedua nilai itu salah.
Ketika salah satu nilainya bukan boolean: ikuti aturan berikut
Operan pertama salah, dan yang pertama dikembalikan;
Ketika operan pertama benar, yang kedua dikembalikan.
Jika operan pertama adalah objek, operan kedua dikembalikan
var a = {b: 1}; a && 'ss' // "ss"Jika operan kedua adalah objek, objek akan dikembalikan hanya jika hasil evaluasi dari operan pertama benar
'ss' && a // objek {b: 1}Jika kedua operan adalah objek, operan kedua dikembalikan
var c = {d: 2}; c && a // objek {b: 1}(1) Jika operan nol, kembalikan nol
(2) Jika ada operan yang nan, maka Nan dikembalikan
(3) Jika operan tidak ditentukan, kembalikan tidak ditentukan
3. Logis atau
Mirip dengan logika dan operator, logika atau operator juga operator hubung singkat. Dengan kata lain, jika hasil evaluasi dari operan pertama adalah benar, evaluasi operan kedua tidak akan dilakukan.
(1) operan pertama benar, kembalikan yang pertama
(2) operan pertama salah, kembalikan yang kedua
Operator perkalian
Ecmascript mendefinisikan 3 operator multiplikasi: multiplikasi, divisi dan modular
Infinity*0 // nan0/0 // naninfinity/infinity // nan
Operator aditif
1. Penambahan (Turn String)
Kedua operator adalah nilai numerik
Lakukan perhitungan penambahan reguler.
Infinity + -infinity // nan
Jika operan adalah string
Jika kedua operator adalah string, maka operator kedua disambung dengan operator pertama
Jika hanya satu operator adalah string, konversi operan lain ke string dan kemudian sambungkan dua string menjadi satu.
Jika operan ini adalah objek, numerik atau boolean, maka hubungi metode tostring () mereka untuk mendapatkan nilai string yang sesuai, dan kemudian terapkan aturan sebelumnya tentang string. Untuk nol dan tidak terdefinisi, fungsi string () dipanggil dan string "tidak terdefinisi" dan "null" masing -masing diperoleh.
2 + '' // "2"
2. Pengurangan (kembali ke nilai)
Jika kedua operan itu numerik
Lakukan operasi pengurangan aritmatika reguler dan kembalikan hasilnya. Jika operan adalah NAN, hasilnya adalah NAN
Infinity - Infinity // nan
Jika ada operan yang bukan nilai numerik
Jika operan adalah string, boolean, nol, atau tidak terdefinisi, fungsi angka () dipanggil di latar belakang untuk mengubahnya menjadi nilai numerik, dan kemudian melakukan perhitungan pengurangan sesuai dengan aturan sebelumnya. Jika hasil konversi adalah NAN, hasil pengurangannya adalah NAN.
Jika operan adalah objek, metode nilai () dari objek dipanggil untuk mendapatkan nilai yang mewakili objek. Jika nilai yang diperoleh adalah NAN, hasil pengurangannya adalah NAN. Jika objek tidak memiliki nilai metode (), metode tostring () dipanggil dan string yang dihasilkan dikonversi ke nilai numerik.
5 - Benar // 4
Operator relasional
Jika kedua operan adalah nilai numerik, lakukan perbandingan numerik
Jika kedua operan adalah string, bandingkan nilai pengkodean karakter yang sesuai dengan dua string
Jika satu operan adalah nilai numerik, konversi operan lain ke nilai numerik dan lakukan perbandingan numerik
var result = '23' <'3' // truevar hasil = '23' <3 // false
Operator yang sama
1. Sama dan tidak setara
Konversi terlebih dahulu dan kemudian bandingkan
(1) Jika operan adalah nilai boolean, konversinya ke nilai numerik sebelum membandingkan kesetaraan
(2) Jika ada operan yang merupakan string dan operan lain adalah nilai numerik, konversinya menjadi nilai numerik terlebih dahulu
(3) Jika satu operan adalah objek dan yang lainnya tidak, maka metode () metode objek dipanggil dan nilai tipe dasar yang diperoleh dibandingkan menurut aturan dasar sebelumnya.
nol dan tidak ditentukan sama
Anda tidak dapat mengonversi nol dan tidak terdefinisi ke nilai lain sebelum membandingkan kesetaraan
Jika kedua operan itu NAN, operator yang sama juga mengembalikan false. Menurut aturan itu, NAN tidak sama dengan NAN
2. Kongruen dan tidak lengkap
Bandingkan saja, bukan konversi
"55"! == 55 // Benar
Operator bersyarat
variabel = boolean_expression? true_value: false_value
Pada dasarnya, makna kode ini adalah untuk menentukan nilai apa pada variabel variabel berdasarkan hasil evaluasi boolean_expression. Jika hasil evaluasi benar, tetapkan True_Value ke variabel; Jika hasil evaluasi salah, tetapkan false_value ke variabel variabel.
Tetapkan operator
Operator penugasan sederhana diwakili oleh tanda yang sama, dan fungsinya adalah untuk menetapkan nilai di sebelah kanan ke variabel di sebelah kiri.
Operator koma
Operator koma sebagian besar digunakan untuk mendeklarasikan beberapa variabel; Namun di samping itu, operator koma juga digunakan untuk menetapkan nilai. Saat digunakan untuk penugasan, operator koma selalu mengembalikan item terakhir dalam ekspresi.