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:
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:
isNaN(), this is global function, converts the tested value to a Number, then tests it.
Nếu chỉ sử dụng isNaN(), đây là function toàn cục, trước khi kiểm tra value có là number hay không?. Nó sẽ convert trước các giá trị này rồi mới kiểm tra.
// 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
The isNaN() function is different from the Number specific Number.isNaN() method. Number.isNaN() does not convert the values to a Number, and will not return true for anyone who want use javascript check is a number or not.
Function isNaN() thì khác so với Number.isNaN(). Function Number.isNaN() không convert giá trị qua kiểu số. Cũng không trả về true cho bất kì giá trị nào khác ngoài kiểu số.
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
2. Sử dụng isInteger()
The
Number.isInteger()
method determines whether the passed value is an integer.Hàm Number.isInteger() kiểm tra xem một được tượng truyền vào có phải là số hay không?
Syntax: Number.isInteger(value)
Function isInteger chỉ trả về True hoặc False. Trường hợp parameter value là số -> trả về true. Ngượ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
Javascript check is a number has a many function to do it. But please take care that’s not working in Internet explorer!.
Lưu ý rằng function này không hỗ trợ trên Internet Explorer. Trường hợp đang viết Javascript core trên IE thì đừng dại dột sử dụng function này nha
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.
Using typeOf in Javascript check is a number maybe is a best way. The parameter to check in typeOf is object, function or variable.
Sử dụng typeOf cũng là một cách đáng xem xét. Ngoài kiểm tra đối tượng, typeOf còn có thể sử dụng với đối tượng, hàm và biến (object, function or variable).
// 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
- Firefox document – Number.isInteger() function
- W3School – isNan() function
- Javascript check is a number with typeOf operator – GeekforGeeks
Bài viết gốc được đăng tải tại kieblog.vn
Có thể bạn quan tâm:
- Thêm kiểm tra type trong Javascript với VS Code
- Top 10 điều hay ho khi làm việc Javascript Array
- Mypy – là trai hay là gái?
Xem thêm Việc làm javascript hấp dẫn trên TopDev