javascript - 为什么 lodash .isNumber 函数比 typeof value == 'number' 更复杂
问题描述
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
解决方案
从您的链接:
检查是否
value
被归类为Number
基元或对象。
var n = new Number(3);
console.log(typeof n); // "object"
console.log(_.isNumber(n)); // true
Number JavaScript 对象是一个包装对象,允许您使用数值。Number 对象是使用 Number() 构造函数创建的。使用 Number() 函数创建原始类型对象编号。
推荐阅读
- sql-server - 在 Asp.Net MVC 的 HttpPostedFileBase 中获取空值
- http - SSL/TLS 证书的用途
- json - Azure 资源管理器 | Web 应用槽配置 | 应用服务身份验证
- r - 为 R 版本 3.4.4 安装 R 包 gplots?
- javascript - Angular - ngOnChanges() 未在属性更改时执行
- asp.net-core - CodePipeline ElasticBeanstalk [错误] 执行命令 [app-deploy] - [CheckProcfileForDotNetCoreApplication] 期间发生错误
- sql-server - 将 DB 与 Visual Studio 中的 Azure MFA 连接以将项目解决方案与 Azure DB 进行比较?
- sql - 按多行数据分组
- c# - .NET Core SDK/运行时和 NuGet 包版本必须匹配吗?
- java - 无法使用 Pyspark 将数据框保存到镶木地板