Using Object.prototype.toString.call()
to check for a number in JavaScript
For numbers, the Object.prototype.toString.call()
function is basically equivalent to using the typeof
keyword.
Hi Stas Kovalenko, thanks for stopping by with your very useful response to my article on how to check for a number in JavaScript!
The JavaScript statement Object.prototype.toString.call()
can indeed differentiate between numbers, objects, and even arrays, because it returns a string that specifies the object type in more detail than typeof
.
Author Moon describes it well in Better Programming:
Indeed, your code example should always work the same as typeof
:
Thanks for sharing! I think Object.prototype.toString.call()
is the most generic way of checking data types in JavaScript, because it will differentiate between types of objects (such as arrays) and that can be useful at times.