Javascript check is a number – 3 cách kiểm tra

9680

Bài viết được sự cho phép của tác giả Kiên Nguyễn

Làm việc với Javascript nhiều, vấn đề các bạn thường gặp là kiểm tra xem một object có phải là number hay không? (Javascript check is a number or not?).

Xin được giới thiệu 3 cách thông dụng dưới đây giúp kiểm tra isNumber trong Javascript:

  10 câu hỏi javascript để nâng cao trình độ
  10 tip tối ưu code trên JavaScript mà web developer nào cũng nên biết

1. Sử dụng isNaN()

Như cái tiêu đề function, NaN (Not a number). Hàm này kiểm tra một giá trị truyền vào có phải là số hay không?.

Syntax: Number.isNaN(value)

Trường hợp parameter value là số -> isNaN() trả về false. Trường hợp parameter value không phải là số isNaN() trả về true.

Chú ý rằng sử dụng isNaN() để kiểm tra number trong Javascript sẽ có hai cách gọi:

// Trường hợp là string sẽ tự động convert qua number rồi mới chekc
// Không convert được -> not a number -> true
isNaN('123') //false
isNaN('Hello') //true
isNaN('2005/12/12') //true

// Chú ý khi sử dụng với ''
isNaN('') //false -> '' vẫn được hiểu là number

// NaN thì cho dù là String cũng check được
isNaN(true) //false
isNaN(undefined) //true
isNaN('NaN') //true
isNaN(NaN) //true

// Các phép toán chia cho 0 chắc chắn không là number
isNaN(0 / 0) //true

Theo ý kiến riêng của mình, trường hợp không thể sure được các giá trị truyền vào có thể là undefined hay NaN, sử dụng Number.isNaN() sẽ là cách an toàn hơn để kiểm tra

Javascript check is a number with isNaN() function

2. Sử dụng isInteger()

Syntax: Number.isInteger(value)

Function isInteger chỉ trả về True hoặc False. Trường hợp parameter value là số -> trả về trueNgược lại, trả về false (bao gồm các trường hợp NaN – Not a Number).

Ví dụ sử dụng:

// Một số ví dụ khi sử dụng isNumber()
Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false

// Lưu ý trường hợp String number cần convert trước nha
Number.isInteger('10'); // false

// Trường hợp số âm, big int
Number.isInteger(-100000); // true
Number.isInteger(99999999999999999999999); // true

// Trường hợp có phần thập phân
Number.isInteger(5.0); // true
Number.isInteger(5.000000000000001); // false
Number.isInteger(5.0000000000000001); // true
Biết là thế, nhưng khó nói lắm. Nếu mà làm cho các dự án cũ của Nhật hoặc cho chính phủ thì xác định là vẫn test IE như thường
Javascript check is a number with isNaN() function

3. typeOf operator – javascript nice way check is number

Sử dụng typeOf cũng là một cách hay để check is a number đối với một object.

// Booleans
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(1) === 'boolean'; // Boolean() will convert values based on if they're truthy or falsy
typeof !!(1) === 'boolean';

typeof [5, 10, 15, 20] === 'object';
typeof 3.14 === 'number';

Anh em có thể đọc thêm các bài viết hay khác về Javascript như:

4. Tham khảo

Bài viết gốc được đăng tải tại kieblog.vn

Có thể bạn quan tâm:

Xem thêm Việc làm javascript hấp dẫn trên TopDev