Chúng ta đều biết JavaScript là một ngôn ngữ dynamic một biến có thể lưu dữ liệu của bất kỳ loại nào từ number, string, boolean. Do vậy để kiểm tra giá trị của một biến có phải là dạng number hay không chúng ta có một vài cách ngắn gọn sau.
Sử dụng Number.isFinite()
Hàm Number.isFinite() được dùng để kiểm tra một giá trị có phải là number hay không, ngoài ra nó cũng kiểm tra đó có phải là một giá trị hữu hạn hay không. Vì thế nó sẽ trả về false trên các giá trị NaN, Infinity, -Infinity.
let intVar = 2; let floatVar = 10.5; let stringVar = '4'; let nanVar = NaN; let infinityVar = Infinity; let nullVar = null; let undefinedVar = undefined; // --------------------------- > Number.isFinite(intVar); true > Number.isFinite(floatVar); true > Number.isFinite(stringVar); false > Number.isFinite(nanVar); false > Number.isFinite(infinityVar); false > Number.isFinite(nullVar); false > Number.isFinite(undefined); false
Hàm này hoạt động khá tốt khi nó trả về false với các giá trị không xác định như undefined, null, Infinity và kể cả những giá trị không phải kiểu number.
Lodash – isNumber
Lodash là một trong những thư viện JavaScript lớn và được sử dụng rỗng rãi nhất trong các dự án sử dụng JavaScript. Nó cung cấp rất nhiều method phục vụ hầu hết các nhu cầu thao tác cơ bản của chúng ta trên string, array, map,etc. Việc cung Lodash cung cấp isNumber() method cho phép kiểm tra một biến có phải là dạng number hay không là chuyện chúng ta dễ hiểu.
<script src="lodash.js"></script> Hoặc qua NPM $ npm i -g npm $ npm i --save lodash
var _ = require('lodash'); _.isNumber(3); // => true _.isNumber(Number.MIN_VALUE); // => true _.isNumber(Infinity); // => true _.isNumber('3'); // => false