Định nghĩa
Gán giá trị từ toán hạng phải cho toán hạng trái. C = A + B gán kết quả A+B vào C.
Ví dụ
<script>
var a = 33;
var b = 10;
var result = (a = b); // gán b cho a, cả biểu thức giá trị = b
document.write("Value of a => (a = b) => " + result); // 10
</script>
Đặc điểm
- Biểu thức gán có giá trị (giá trị được gán). Cho phép chuỗi:
a = b = c = 0. - Toán hạng trái phải là l-value (biến, property, array index).
- Priority thấp nhất (trừ comma) – thường dùng ngoặc trong biểu thức lớn.
Phân biệt với so sánh
| Toán tử | Tên | Ví dụ | Kết quả |
|---|---|---|---|
| = | Assignment | x = 5 | gán 5 cho x, giá trị 5 |
| == | Loose equality | x == 5 | true/false |
| === | Strict equality | x === 5 | true/false |
Cạm bẫy thường gặp
if (x = 5) { ... } // LUÔN true (gán 5 cho x, giá trị 5 truthy)
// Ý muốn: if (x == 5) hoặc if (x === 5)
ESLint rule no-cond-assign cảnh báo lỗi này.