为什么JavaScript Math模块名称不遵循camelCase?

exe*_*ook 1 javascript

我确信JavaScript的"官方"标识符是camelCase setInterval(), .round().

那么为什么Math从资本开始呢?

rai*_*7ow 5

嗯,Math的确是主机JS模块之间有点独特- ,Object,,Number 等,这是不是一个功能-它是一个对象,并在其原型链的下一个对象是:DateRegExpObject.prototype

typeof Object; // function
typeof Math;   // object
Math.__proto__ === Object.prototype // true
Run Code Online (Sandbox Code Playgroud)

尽管如此,它仍然是一个相当独特的对象,它拥有相当多的通用JS辅助函数和常量.如果在源代码中的其他对象中看不清楚它会非常不方便,那将是非常不方便的.


我说'独特',这几乎是真的.)参见ECMAScript语言规范(第5.1版)的全文中,短语"单个对象"恰好出现两次:第一Math部分(15.8),第二JSON部分(第15.12节).实际上有两个这样的"类似服务"的主机对象; 两者的名字都以大写字母开头.