Math对象的JavaScript代码

JavaScript code for Math object

本文关键字:代码 JavaScript 对象 Math      更新时间:2023-09-26

我正在开发一个将JavaScript源代码转换为目标语言的翻译器。我正在尝试用目标语言实现JavaScript的Math对象。

如果有"Math"对象的JavaScript实现,我可以使用翻译器获得目标语言中的等效代码。

我正在寻找这样的东西:

var Math = {
    pow: function(...) {...}
    exp: function(...) {...}
    /* other methods of Math */
}

是否有这样的实施?这将帮助我避免用目标语言手动编写Math对象的代码。

math.js的V8实现可能会为您提供一些指导,但当然,它充满了用于本机函数调用的占位符。您必须能够用目标语言中适当的基于库的标准函数调用来替换%Math_floor(x)之类的东西。

http://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/math.js?spec=svn10758&r=10758

这来自官方ecmascript-262规范:

注意函数acos、asin、atan、atan2、cos、exp的行为,这里没有精确指定log、pow、sin、sqrt和tan,除了对于表示感兴趣的边界情况。对于其他参数值函数旨在计算熟悉的数学函数,但在近似算法的选择。总体意图是实现者应该能够使用相同的数学库给定硬件平台上可供C使用的ECMAScript该平台上的程序员。

尽管算法的选择由实现决定,建议(但未由指定该标准),实现使用近似算法对于fdlibm中包含的IEEE 754算法Sun Microsystems的数学库(http://www.netlib.org/fdlibm)。

您需要的对象是:

Math.exp(x) // Returns the value of Ex
Math.pow(x,y)   // Returns the value of x to the power of y

除此之外,还有更多可以帮助您的java。这些是

Math.PI         // returns PI
Math.random();              // returns a random number
Math.max(0, 150, 30, 20, -8, -200);      // returns 150
Math.min(0, 150, 30, 20, -8, -200);      // returns -200
Math.round(4.7);            // returns 5
Math.round(4.4);            // returns 4