为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 lodash .isNumber 函数比 typeof value == 'number'

为什么 lodash .isNumber 函数比 typeof value == 'number'

慕的地8271018 2021-07-06 17:07:13
LodashisNumber函数有一个额外的条件来检查值是否为数字。我不确定为什么需要这样做,在什么情况下仅使用是不够的typeof value == 'number'function isNumber(value) {  return typeof value == 'number' ||    (isObjectLike(value) && getTag(value) == '[object Number]')}https://github.com/lodash/lodash/blob/aa1d7d870d9cf84842ee23ff485fd24abf0ed3d1/isNumber.js
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

从您的链接:


检查是否value被归类为Number基元或对象。


var n = new Number(3);

console.log(typeof n); // "object"

console.log(_.isNumber(n)); // true

MDN - 编号:


Number JavaScript 对象是一个包装对象,允许您处理数值。Number 对象是使用 Number() 构造函数创建的。使用 Number() 函数创建原始类型对象编号。


查看完整回答
反对 回复 2021-07-08
?
慕森王

TA贡献1777条经验 获得超3个赞

Number()函数将创建一个数字原语,而Number()构造函数将创建一个Number对象:

typeof Number(0) // 'number'
typeof new Number(0) // 'object'

Lodash 会检查这两种情况。


查看完整回答
反对 回复 2021-07-08
  • 2 回答
  • 0 关注
  • 342 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号