Hàm isNaN trong JavaScript | Laptrinhcanban.com

Hàm isNaN trong JavaScript

Hướng dẫn cách sử dụng hàm isNaN trong JavaScript. Bạn sẽ học được cách sử dụng hàm isNaN để kiểm tra một giá trị có phải là NaN hay không sau bài học này.

Hàm isNaN trong Javascript

Hàm isNaN trong Javascript là một hàm glocal có tác dụng kiểm tra một giá trị có phải là NaN hay không. Nếu như giá trị chỉ định không phải là số thì hàm sẽ chuyển đổi kiểu dữ liệu sang số trước khi thực hiện việc kiểm tra.

  • JavaScript cũng chuẩn bị phương thức Number.isNaN trong Number Object có tác dụng kiểm tra một số có phải là NaN hay không. Bạn có thể tìm hiểu thêm phương thức này tại bài Number.isNaN trong JavaScript .

Chúng ta sử dụng hàm isNaN trong JavaScript với cú pháp sau đây:

isNaN(object);

Trong đó object là đối tượng cần kiểm tra giá trị của nó có phải là NaN hay không.

Hàm isNaN() sẽ kiểm tra đối tượng chỉ định, và nếu đối tượng đã cho không thuộc kiểu số thì sẽ chuyển đổi về kiểu số trước khi kiểm tra NaN.

Lý do cần sử dụng hàm isNaN để kiểm tra giá trị NaN là bởi vì trong JavaScript, chúng ta không thể sử dụng tới các toán tử so sánh để kiểm tra NaN:

console.log(NaN == NaN);
// false

console.log(NaN === NaN);
// false

Bởi vậy thay vì các toán tử so sánh thì chúng ta cần phải dùng tới hàm đặc biệt là isNaN để thực hiện việc này.

Ví dụ cụ thể sử dụng isNaN() trong JavaScript:

isNaN(NaN);        // true
isNaN(Number.NaN); // true
isNaN(0 / 0); // true

Các giá trị sau đây không phải giá trị NaN nên giá trị false được trả về:

isNaN(37);      // false

isNaN(12.345); // false

Các giá trị sau đây không thuộc kiểu số nên chúng được chuyển về kiểu số trước khi được xét có phải là NaN hay không:

isNaN('37');      // false
isNaN('37.37'); // false
isNaN(''); // false
isNaN(' '); // false

isNaN('NaN'); // true
isNaN(undefined); // true
isNaN({}); // true
isNaN('blabla'); // true

isNaN(true); // false
isNaN(null); // false

Sự khác biệt giữa isNaN và Number.isNaN trong JavaScript

Hàm global isNaN() và phương thức thành viên Number.isNaN trong JavaScript đều được sử dụng để xác định giá trị của một đối tượng có phải là NaN hay không. Tuy nhiên khi xử lý một đối tượng không thuộc kiểu số thì chúng sẽ hoạt động hoàn toàn khác nhau.

  1. Nếu đối tượng chỉ định không thuộc kiểu số, hàm isNaN() sẽ chuyển đối tượng đó về kiểu số, rồi sau đó mới kiểm tra đối tượng thuộc kiểu số đó có giá trị NaN không.

  2. Ngược lại với phương thức Number.isNaN() thì nếu đối tượng chỉ định không thuộc kiểu số thì giá trị false sẽ ngay lập tức được trả về.

Hãy cùng xem sự khác biệt giữa isNaN và Number.isNaN qua các ví dụ sau:

isNaN(NaN);
// true
Number.isNaN(NaN);
// true

isNaN(0 / 0);
// true
Number.isNaN(0 / 0);
// true

isNaN('Hello');
// true
Number.isNaN('Hello');
// false

isNaN(undefined);
// true
Number.isNaN(undefined);
// false

isNaN({a:'10'});
// true
Number.isNaN({a:'10'});
// false

Có thể thấy rõ khi kiểm tra giá trị NaN, hay là kết quả của một phép tính thì cả hai phương pháp đều cho ra giá trị true. Tuy nhiên cũng có những trường hợp mà có sự khác biệt về kết quả giữa isNaN và Number.isNaN.

Bởi vậy, nếu bạn muốn kiểm tra giá trị NaN với đối tượng thuộc kiểu số, hãy dùng phương thức Number.isNaN để cho ra kết quả chính xác.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách sử dụng hàm isNaN để kiểm tra giá trị có phải là NaN trong JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.