Bỏ qua để đến nội dung

Assignment & Arithmetic Operators

Dùng để lưu giá trị vào biến.

Toán tửVí dụTương đương với
=x = 10Gán giá trị
+=x += 5x = x + 5
-=x -= 2x = x - 2
*=x *= 3x = x * 3
/=x /= 2x = x / 2
%=x %= 3x = x % 3
**=x **= 2x = x ** 2
let x = 10;
x += 5; // x = 15
x -= 3; // x = 12
x *= 2; // x = 24
x /= 4; // x = 6
x %= 4; // x = 2
x **= 3; // x = 8

ES6 cho phép gán giải cấu trúc:

const [a, b, c] = [1, 2, 3];
console.log(a, b, c); // 1 2 3
// Swap không cần biến tạm
let x = 1, y = 2;
[x, y] = [y, x];
console.log(x, y); // 2 1

Dùng để thực hiện các phép toán cơ bản.

Toán tửMô tảVí dụKết quả
+Cộng5 + 27
-Trừ5 - 23
*Nhân3 * 412
/Chia10 / 25
%Lấy dư (modulo)10 % 31
**Lũy thừa2 ** 38
++Tăng 1x++x = x + 1
--Giảm 1x--x = x - 1

10 / 0; // Infinity
-10 / 0; // -Infinity
0 / 0; // NaN

Tăng trước, rồi trả giá trị mới:

let a = 5;
let b = ++a;
console.log(a); // 6
console.log(b); // 6 (tăng trước, rồi gán)

Là các toán tử chỉ hoạt động với một toán hạng (một giá trị).

Toán tửMô tảVí dụKết quả
+Chuyển sang kiểu số+"5"5
-Đảo dấu hoặc chuyển kiểu số-true-1
!Phủ định logic!falsetrue
typeofTrả về kiểu dữ liệutypeof "hi""string"
deleteXóa thuộc tính của objectdelete obj.keytrue
voidThực thi nhưng luôn trả về undefinedvoid 0undefined
++Tăng thêm 1++xx = x + 1
--Giảm đi 1--xx = x - 1

+"5"; // 5 (string → number)
+true; // 1
+false; // 0
+null; // 0
+undefined; // NaN
-"5"; // -5
-true; // -1

NhómToán tử chínhGhi nhớ
Gán= += -=Gán về bên trái
Số học+ - * / % **+ cũng nối string!
Tăng/giảm++ --Prefix ≠ Postfix
Unary+ - ! typeof delete voidChỉ cần 1 toán hạng