From 3936a1d3b8a3c9bb57e6f98cf407861acb3a7ec3 Mon Sep 17 00:00:00 2001 From: Isabelle Viktoria Maciohsek Date: Thu, 22 Oct 2020 20:23:26 +0300 Subject: [PATCH] Update validateNumber --- snippets/validateNumber.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/snippets/validateNumber.md b/snippets/validateNumber.md index d262ffa27..fd5b42d1b 100644 --- a/snippets/validateNumber.md +++ b/snippets/validateNumber.md @@ -3,16 +3,21 @@ title: validateNumber tags: math,intermediate --- -Returns `true` if the given value is a number, `false` otherwise. +Checks if the given value is a number. -- Use `!isNaN()` in combination with `parseFloat()` to check if the argument is a number. -- Use `isFinite()` to check if the number is finite. -- Use `Number()` to check if the coercion holds. +- Use `parseFloat()` to try to convert `n` to a number. +- Use `!Number.isNaN()` to check if `num` is a number. +- Use `Number.isFinite()` to check if `num` is finite. +- Use `Number()` and the loose equality operator (`==`) to check if the coercion holds. ```js -const validateNumber = n => !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n; +const validateNumber = n => { + const num = parseFloat(n); + return !Number.isNaN(num) && Number.isFinite(num) && Number(n) == n; +} ``` ```js validateNumber('10'); // true +validateNumber('a'); // false ```