Toán tử + thực hiện nối chuỗi thay vì cộng số khi các giá trị là kiểu chuỗi (string). Giá trị từ ô input luôn là chuỗi, do đó cần dùng parseInt() hoặc Number() để chuyển đổi.
Ví dụ: Cộng 2 số từ ô input
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cộng 2 số</title>
</head>
<body>
Số thứ nhất: <input type="number" class="num1" placeholder="Nhập số"><br>
Số thứ hai: <input type="number" class="num2" placeholder="Nhập số"><br><br>
<button onclick="sumOfTwoNumbers()">Cộng</button>
<p class="output"></p>
<script>
function sumOfTwoNumbers() {
var num1 = document.querySelector(".num1").value;
var num2 = document.querySelector(".num2").value;
// Chuyển đổi sang số trước khi cộng
var addition = parseInt(num1) + parseInt(num2);
document.querySelector(".output").innerHTML = "Tổng 2 số = " + addition;
}
</script>
</body>
</html>
Cách chạy
Lưu file index.html và mở với Live Server trong VS Code.
Kết quả
Nhập 2 số và nhấn nút "Cộng", kết quả tổng sẽ hiển thị thay vì chuỗi nối nhau.
Mẹo: Có thể dùng Number(), +num1 (unary plus) hoặc parseFloat() cho số thập phân.