美文网首页
js中如何判断是否为number类型

js中如何判断是否为number类型

作者: 百變Confucius | 来源:发表于2021-03-17 16:29 被阅读0次

isFinite 方法检测它参数的数值。如果参数是 NaN,正无穷大或者负无穷大,会返回false,其他返回 true

可以通过 toString() 来获取每个对象的类型。为了每个对象都能通过 Object.prototype.toString() 来检测,需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式来调用,传递要检查的对象作为第一个参数,称为 thisArg。

var toString = Object.prototype.toString;

toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]

//Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]
var isNumber = function isNumber(value) {
  return typeof value === 'number' && isFinite(value);
}

var isNumberObject = function isNumberObject(n) {
   return (Object.prototype.toString.apply(n) === '[object Number]');
}

var isCustomNumber = function isCustomNumber(n){
   return isNumber(n) || isNumberObject(n);
}

console.log(isCustomNumber(9)); //true
console.log(isCustomNumber('0')); //false
console.log(isCustomNumber('hello')); //false
console.log(isCustomNumber(NaN)); //true

相关文章

网友评论

      本文标题:js中如何判断是否为number类型

      本文链接:https://www.haomeiwen.com/subject/fsjecltx.html