Check whether variable is number or string in JavaScript

javascript, types

Solution

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

Problem

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

Original source

Related problems