Vấn đề tiềm ẩn
Toán tử tăng/giảm (++, --) có thể gây kết quả bất ngờ do thứ tự đánh giá phức tạp, đặc biệt khi kết hợp trong biểu thức hoặc gán.
Ví dụ gây nhầm lẫn
<!DOCTYPE html>
<html>
<body>
<script>
var a = 5;
var b = ++a; // a=6, b=6
var c = a++; // c=6, a=7
var d = ++c; // c=7, d=7
document.write("a=" + a + "<br>"); // 7
document.write("b=" + b + "<br>"); // 6
document.write("c=" + c + "<br>"); // 7
document.write("d=" + d); // 7
</script>
</body>
</html>
Vấn đề khoảng trắng
a = b = c = 1;
++a; // tiền tố
b--; // hậu tố
c; // không thay đổi
Khoảng trắng giữa toán tử và biến có thể dẫn đến hiểu nhầm khi đọc code.
Khuyến nghị
- Dùng
a = a + 1hoặca += 1rõ ràng hơn. - Tách câu lệnh tăng/giảm riêng, không nhúng trong biểu thức phức tạp.
- Các linter (ESLint) thường cảnh báo về việc này (rule
no-plusplus).