javascript - 为什么大多数 Number 原型(prototype)函数都有全局重复函数?

标签 javascript

我真的很想知道,拥有两个重复函数的目的是什么。

例如:

isFinite() and Number.isFinite()

isNaN() and Number.isNaN()

但是,例如,当有 Number.isInteger() 时,就没有 IsInteger() 函数。

有什么区别?

为什么存在重复项?

什么时候应该使用 Number 原型(prototype)函数或 Global 函数?

最佳答案

正如 @squint 和 @deceze 所指出的,全局版本是一种为了向后兼容而保持完整的旧版本。它们具有如下所示的明显差异,因为全局变量在测试之前将值转换为 Number

isNaN('NaN'); //true
Number.isNaN('NaN')//false ,considers it as a string

Number.isFinite('100');//false ,considers it as a string
isFinite('100');//true 

目的是不破坏为旧实现编写的代码,并为新开发人员提供更好的代码。 (与向后兼容性相同)

关于javascript - 为什么大多数 Number 原型(prototype)函数都有全局重复函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40847447/

相关文章:

javascript - 如何避免在 React 的嵌套列表中重新呈现

javascript - 在 2x2 表 jquery 中包装 div

javascript - 克隆并恢复 "tooltiped"元素

javascript - 简单分隔符之间的匹配,但分隔符本身不匹配

javascript - 如何在es6中替换 `bind(this)`

javascript - D3 v4 更新嵌套数据,最好的方法

javascript - 在 JavaScript 中从字符串的开头到结尾删除 HTML 内容组

javascript - 使用分组时如何在 AngularJS ui-grid 中进行过滤?

javascript - 在另一个对象中存储 Javascript 和 JSON 对象

JavaScript/jQuery : Compare 2 jSON objects and output result into new object