检查变量在 JavaScript 中是数字还是字符串

2022-08-29 23:00:01

有谁知道我如何检查变量在JavaScript中是数字还是字符串?


答案 1

如果您正在处理文字表示法,而不是构造函数,则可以使用typeof:。

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

如果要通过构造函数(如 )创建数字和字符串,则应记住,可能会返回 。var foo = new String("foo")typeofobjectfoo

也许检查类型的更万无一失的方法是利用下划线中找到的方法.js(注释的源可以在这里找到),

var toString = Object.prototype.toString;

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

这将返回以下内容的布尔值:true

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

答案 2

最好的方法是使用 + 类型转换:isNaN

更新了全能方法:

function isNumber(n) { return !isNaN(parseFloat(n)) && !isNaN(n - 0) }

使用正则表达式相同:

function isNumber(n) { return /^-?[\d.]+(?:e-?\d+)?$/.test(n); } 

------------------------

isNumber('123'); // true  
isNumber('123abc'); // false  
isNumber(5); // true  
isNumber('q345'); // false
isNumber(null); // false
isNumber(undefined); // false
isNumber(false); // false
isNumber('   '); // false