Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách kiểm tra giá trị số trong JavaScript

Sử dụng isNaN()

Hàm isNaN(value) trả về true nếu giá trị không phải là số (Not-a-Number), ngược lại trả false.

Ví dụ

<!DOCTYPE html>
<html>
<body>
  <button onclick="display()">Check</button>
  <p id="test"></p>
  <script>
    function display() {
      var a = "";
      a += isNaN(6234) + ": 6234<br>";      // false
      a += isNaN(-52.1) + ": -52.1<br>";    // false
      a += "Giá trị trên trả về false → là số.";
      document.getElementById("test").innerHTML = a;
    }
  </script>
</body>
</html>

Kết quả

false: 6234
false: -52.1
Giá trị trên trả về false → là số.

Cạm bẫy của isNaN()

isNaN() cố ép kiểu đối số sang số trước khi kiểm tra, dẫn đến hành vi kỳ lạ:

isNaN("hello")   // true
isNaN("")        // false (rỗng → 0)
isNaN(null)      // false (null → 0)
isNaN(undefined) // true

Giải pháp hiện đại: Number.isNaN()

Number.isNaN() không ép kiểu, chỉ trả true cho chính xác NaN:

Number.isNaN(NaN)       // true
Number.isNaN("hello")   // false
Number.isNaN(undefined) // false

Khuyên dùng Number.isNaN() để tránh bug ngầm.