JavaScript 中的数学对象

Math object in JavaScript

在JavaScript中,Math对象没有构造函数,但为什么要大写如Math.random()? 据我了解,诸如 Date 和 Object 之类的对象之所以大写是因为它们具有构造函数(例如 Date.now())

首字母大写并非用于构造函数,尽管这是主要用途。它也用于像 MathReflect 这样的对象,像 Infinity 这样的值,以及 Symbol 函数(Symbol 创建符号,但不是构造函数——你不使用 new )。它将它们与局部变量区分开来。

其中很多是 Brendan Eich 在 1995 年 5 月疯狂的 10 天里完成的,考虑到他工作的最后期限,他可能并不太担心他是什么和没有利用什么。 :-)

(有人说InfinityNaN应该是infinitynan来匹配undefinednull,但是。 ..一致性很难。然后就是 InfinityNaNundefined 是全局常量,但 null 是关键字...)