Kursus IT Dasar JavaScript 040_Operator
Operator JavaScript digunakan untuk operasi matematika, perbandingan, operasi logika, dan operasi lainnya serta mengembalikan hasil.
Operator Aritmatika
+: Penjumlahan-: Pengurangan*: Perkalian/: Pembagian%: Modulo (sisa)**: Eksponensial
Contoh:
let a = 5;let b = 2;
console.log(a + b); // Output 7console.log(a - b); // Output 3console.log(a * b); // Output 10console.log(a / b); // Output 2.5console.log(a % b); // Output 1console.log(a**b); // Output 25Operator Penugasan
=: Penugasan+=: Penugasan penjumlahan-=: Penugasan pengurangan*=: Penugasan perkalian/=: Penugasan pembagian%=: Penugasan modulo**=: Penugasan eksponensial??=: Penugasan nullish, penugasan hanya terjadi ketika nilai variabel adalah null atau undefined
Contoh:
let x = 5;x += 2; // x = x + 2; Output 7x -= 2; // x = x - 2; Output 3x *= 2; // x = x * 2; Output 10x /= 2; // x = x / 2; Output 2.5x %= 2; // x = x % 2; Output 1x **= 2; // x = x ** 2; Output 25x ??= 2; // Output 5, menugaskan 2 ketika x adalah null atau undefinedconsole.log(x);Operator Perbandingan
==: Kesetaraan (tipe nilai dikonversi secara otomatis)===: Kesetaraan ketat (nilai dan tipe sama)!=: Ketidaksetaraan!==: Ketidaksetaraan ketat>: Lebih besar dari<: Lebih kecil dari>=: Lebih besar dari atau sama dengan<=: Lebih kecil dari atau sama dengan
Ketika nilai non-numerik ditemui, mereka pertama kali dikonversi menjadi nilai numerik kemudian dibandingkan. Ketika string ditemui, kode Unicode karakter dibandingkan posisi per posisi.
Contoh:
let a = 5;let b = '5';let c = 10;
console.log(a == b); // Output true, nilai samaconsole.log(a === b); // Output false, tipe tidak samaconsole.log(a != b); // Output false, nilai samaconsole.log(a !== b); // Output true, tipe tidak samaconsole.log(a > c); // Output false, 5 < 10console.log(a < c); // Output true, 5 < 10console.log(a >= c); // Output false, 5 <= 10console.log(a <= c); // Output true, 5 <= 10Operator Logika
Operator logika, saat memproses operan, mengonversinya menjadi nilai boolean dan mengembalikan nilai asli dari operan tersebut.
&&: AND logis
Digunakan untuk memeriksa apakah semua kondisi secara bersamaan true. Jika semua kondisi true, maka hasil dari seluruh ekspresi adalah true; jika tidak, hasilnya adalah false.
Operasi AND mencari false pertama dari kiri ke kanan. Jika false ditemukan, perhitungan berhenti dan mengembalikan nilai asli dari operan tersebut (evaluasi sirkuit pendek). Jika akhirnya tidak ada false, maka true terakhir dikembalikan.
||: OR logis
Digunakan untuk memeriksa apakah setidaknya satu kondisi true. Jika setidaknya satu kondisi true, maka hasil dari seluruh ekspresi adalah true; jika semua kondisi false, hasilnya adalah false.
Operasi OR mencari true pertama dari kiri ke kanan. Jika true ditemukan, perhitungan berhenti dan mengembalikan nilai asli dari operan tersebut (evaluasi sirkuit pendek). Jika akhirnya tidak ada true, maka false terakhir dikembalikan.
!: NOT logis
Digunakan untuk membalik nilai boolean. Jika nilai true, menggunakan operator NOT logis akan membaliknya menjadi false; jika nilai false, akan membaliknya menjadi true.
NOT logis juga dapat digunakan untuk mengonversi nilai non-boolean menjadi nilai boolean. Ini mengonversi semua nilai selain null, undefined, 0, NaN, "" (string kosong) menjadi true, sementara nilai-nilai tersebut sendiri dikonversi menjadi false.
Contoh:
let a = true;let b = false;let c = "hello";let d = null;
console.log(a && b); // Output falseconsole.log(c && d); // Output nullconsole.log(a || b); // Output trueconsole.log(c || d); // Output helloconsole.log(!a); // Output falseconsole.log(!d); // Output trueOperator Ternary
condition ? expr1 : expr2: Jika kondisi benar, mengembalikanexpr1, jika tidak mengembalikanexpr2.
Contoh:
let age = 18;let status = (age >= 18) ? 'Dewasa' : 'Di bawah umur';console.log(status); // Output 'Dewasa'Operator Penggabungan Null
Operator Penggabungan Null (Nullish Coalescing Operator) adalah operator yang digunakan untuk menangani nilai default, biasanya digunakan untuk memastikan variabel memiliki nilai non-null (bukan null dan bukan undefined). Sintaks operator ini adalah ??.
Saat menggunakan operator penggabungan null, ia mengembalikan operan yang didefinisikan pertama (bukan null dan bukan undefined). Jika operan pertama adalah null atau undefined, ia mengembalikan operan kedua.
Contoh:
let num1 = 0;let num2 = 1;let result = num1 ?? num2;console.log(result); // Output 0, karena num bukan null atau undefined
let user;console.log(user ?? "Anonim"); // Output Anonim, karena user tidak terdefinisiOperator Bitwise
&: AND bitwise|: OR bitwise^: XOR bitwise~: NOT bitwise<<: Geser kiri>>: Geser kanan>>>: Geser kanan tanpa tanda
Contoh:
let a = 5; // Biner: 0101let b = 3; // Biner: 0011
console.log(a & b); // Output 1 (AND bitwise)console.log(a | b); // Output 7 (OR bitwise)console.log(a ^ b); // Output 6 (XOR bitwise)console.log(~a); // Output -6 (NOT bitwise)console.log(a << 1); // Output 10 (Geser kiri)console.log(a >> 1); // Output 2 (Geser kanan)Operator Lainnya
typeof: Mengembalikan string yang menunjukkan tipe dari operan yang tidak dievaluasi.instanceof: Digunakan untuk menguji apakah objek adalah instance dari tipe tertentu.
Contoh:
let str = 'Hello';console.log(typeof str); // Output 'string'
let arr = [1, 2, 3];console.log(arr instanceof Array); // Output true+ (Plus)
Dalam JavaScript, tanda plus + memiliki beberapa kegunaan, termasuk operasi matematika, penggabungan string, dan operasi unary.
Operasi Matematika
Contoh:
let a = 5;let b = 3;let result = a + b;console.log(result); // Output 8Jika keduanya adalah angka, + digunakan untuk melakukan penjumlahan matematika.
Penggabungan String
Contoh:
let str1 = 'Hello';let str2 = ' World';let result = str1 + str2;console.log(result); // Output 'Hello World'Jika salah satu operan adalah string, + akan melakukan penggabungan string.
Operator Plus Unary
Contoh:
let str = '42';let num = +str;console.log(num); // Output 42Saat menggunakan + sebelum operan tunggal, ia dapat mengonversi operan menjadi angka. Ini adalah fungsi dari operator plus unary.
Konversi Tipe
Contoh:
let num = 42;let str = '10';let result = num + str; // Konversi tipe implisit (pemaksaan tipe)console.log(result); // Output '4210'Jika salah satu operan adalah string, + akan melakukan konversi tipe, mengonversi operan lain menjadi string, kemudian melakukan penggabungan string.
Penggabungan Array
Contoh:
let arr1 = [1, 2, 3];let arr2 = [4, 5, 6];let result = arr1 + arr2;console.log(result); // Output '1,2,34,5,6'Ketika operan adalah array, + akan mengonversi array menjadi string, kemudian melakukan penggabungan string.
Kasus Khusus
Contoh:
let specialResult1 = '1' + 2 + 3;console.log(specialResult1); // Output '123'
let specialResult2 = 2 + 3 + '1';console.log(specialResult2); // Output '51'specialResult1: Karena string muncul di paling kiri dari +, angka-angka berikutnya akan digabungkan sebagai string.
specialResult2: Karena string muncul di paling kanan dari +, angka-angka sebelumnya akan dijumlahkan secara matematika terlebih dahulu, kemudian digabungkan.
- (Minus)
Dalam JavaScript, tanda minus - adalah operator yang digunakan untuk melakukan pengurangan matematika.
Pengurangan Matematika
Contoh:
let a = 5;let b = 3;let result = a - b;console.log(result); // Output 2Jika keduanya adalah angka, - digunakan untuk melakukan pengurangan matematika.
Operator Minus Unary
Contoh:
let num = 42;let result = -num;console.log(result); // Output -42Saat menggunakan - sebelum operan tunggal, ia dapat melakukan pengurangan unary, mengonversi operan menjadi lawannya.
Konversi Tipe
Contoh:
let num1 = 42;let str = '10';let result = num1 - str;console.log(result); // Output 32Jika salah satu operan adalah string, - akan melakukan konversi tipe, mengonversi operan lain menjadi angka, kemudian melakukan pengurangan matematika.
Kasus Khusus
Contoh:
let specialResult = '10' - 2;console.log(specialResult); // Output 8Dalam kasus khusus ini, karena konten string dapat berhasil dikonversi menjadi angka, - akan melakukan pengurangan matematika.
=、==、=== (Penugasan, kesetaraan longgar, kesetaraan ketat)
Dalam JavaScript, tanda sama dengan = adalah operator penugasan, sedangkan == dan === adalah operator perbandingan. Kesetaraan longgar mengonversi kedua operan ke tipe yang sama, kemudian melakukan perbandingan. Dalam pemeriksaan kondisi, biasanya === digunakan untuk perbandingan kesetaraan ketat karena tidak melakukan konversi tipe.
Operator Penugasan
= digunakan untuk menugaskan nilai sisi kanan ke variabel sisi kiri.
Contoh:
let x = 5;let y = 'Hello';console.log(x); // Output 5console.log(y); // Output 'Hello'Dalam contoh ini, = menugaskan nilai sisi kanan ke variabel x dan y di sisi kiri.
Operator Perbandingan
== dan === digunakan untuk membandingkan kesetaraan dua nilai.
Contoh:
let a = 5;let b = '5';
console.log(a == b); // Output trueconsole.log(a === b); // Output falseSaat melakukan perbandingan kesetaraan dengan ==, konversi tipe dilakukan, null == undefined menghasilkan true.
Saat melakukan perbandingan kesetaraan dengan ===, nilai dan tipe harus sama, null === undefined menghasilkan false.
NaN tidak sama dengan nilai apa pun, termasuk NaN itu sendiri.
++、-- (Increment, Decrement)
Dalam JavaScript, increment (++) dan decrement (--) adalah operator yang digunakan untuk menambah atau mengurangi nilai variabel.
Operator Increment (++)
Setelah digunakan, akan membuat variabel asli langsung bertambah 1. Increment awalan mengembalikan nilai setelah increment (nilai baru); Increment akhiran mengembalikan nilai sebelum increment (nilai lama);
Contoh increment awalan:
let a = 5;// Increment awalan, pertama tambah 1, kemudian gunakan nilai barulet b = ++a;console.log(b); // Output 6console.log(a); // Output 6Dalam contoh ini, a pertama kali bertambah 1, kemudian b mendapatkan nilai baru dari a (6).
Contoh increment akhiran:
let x = 5;// Increment akhiran, pertama gunakan nilai saat ini, kemudian tambah 1let y = x++;console.log(y); // Output 5console.log(x); // Output 6Dalam contoh ini, y pertama kali mendapatkan nilai saat ini dari x (5), kemudian nilai x bertambah 1.
Operator Decrement (—)
Setelah digunakan, akan membuat variabel asli langsung berkurang 1. Decrement awalan mengembalikan nilai setelah decrement (nilai baru); Decrement akhiran mengembalikan nilai sebelum decrement (nilai lama);
Contoh decrement awalan:
let p = 10;// Decrement awalan, pertama kurangi 1, kemudian gunakan nilai barulet q = --p;console.log(q); // Output 9console.log(p); // Output 9Dalam contoh ini, p pertama kali berkurang 1, kemudian q mendapatkan nilai baru dari p (9).
Contoh decrement akhiran:
let m = 8;// Decrement akhiran, pertama gunakan nilai saat ini, kemudian kurangi 1let n = m--;console.log(n); // Output 8console.log(m); // Output 7Dalam contoh ini, n pertama kali mendapatkan nilai saat ini dari m (8), kemudian nilai m berkurang 1.
Prioritas operator:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence