Check whether variable is number or string in JavaScript

Jin Yong picture Jin Yong · Aug 20, 2009 · Viewed 579.6k times · Source

Does anyone know how can I check whether a variable is a number or a string in JavaScript?

Answer

Sampson picture Sampson · Aug 20, 2009

If you're dealing with literal notation, and not constructors, you can use typeof:.

typeof "Hello World"; // string
typeof 123;           // number

If you're creating numbers and strings via a constructor, such as var foo = new String("foo"), you should keep in mind that typeof may return object for foo.

Perhaps a more foolproof method of checking the type would be to utilize the method found in underscore.js (annotated source can be found here),

var toString = Object.prototype.toString;

_.isString = function (obj) {
  return toString.call(obj) == '[object String]';
}

This returns a boolean true for the following:

_.isString("Jonathan"); // true
_.isString(new String("Jonathan")); // true