Math 對象

2018-06-16 15:47 更新

 Math 對象是擁有一些命名屬性的單一對象,其中一些屬性值是函數。

 Math 對象的 [[Prototype]] 內部屬性值是標準內置 Object 原型對象 (15.2.4)。Math 對象的 [[Class]] 內部屬性值是 "Math"。

 Math 對象沒有 [[Construct]] 內部屬性 ; Math 對象不能作為構造器被 new 運算符調用。

 Math 對象沒有 [[Call]] 內部屬性;Math 對象不能作為函數被調用。

 本規(guī)范中,短語“x 的數字值”的技術含義定義在 8.5。

Math 對象的值屬性

E

 自然對數的底數 e 的數字值,約為 2.7182818284590452354。

 此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } 。

LN10

 10 的自然對數的數字值,約為 2.302585092994046。

 此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } 。

LN2

 2 的自然對數的數字值,約為 0.6931471805599453。

 此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } 。

LOG2E

 自然對數的底數 e 的以 2 為底數的對數的數字值;約為 1.4426950408889634。

 此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } 。

 Math.LOG2E 的值約為 Math.LN2 值的倒數。

LOG10E

 自然對數的底數 e 的以 10 為底數的對數的數字值;約為 0.4342944819032518。

 此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } 。

 Math.LOG10E 的值約為 Math.LN10 值的倒數。

PI

 圓的周長與直徑之比π的數字值,約為 3.1415926535897932。

 此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } 。

SQRT1_2

 ? 的平方根的數字值,約為 0.7071067811865476。

 此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } 。

 Math.SQRT1_2 的值約為 Math.SQRT2 值的倒數。

SQRT2

 2 的平方根的數字值,約為 1.4142135623730951。

 此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } 。

Math 對象的函數屬性

 對以下每個 Math 對象函數的每個參數(如果有多個,以左到右的順序)應用 ToNumber 抽象操作,然后對結果數字值執(zhí)行計算。

 下面對函數的描述中,符號 NaN, ?0, +0, ?∞, +∞ 指 8.5 描述的數字值。

 這里沒有精確規(guī)定函數 acos, asin, atan, atan2, cos, exp, log, pow, sin, sqrt 的行為,除了需要特別說明對邊界情況某些參數值的結果之外。對其他參數值,這些函數旨在計算計算常見數學函數的結果,但選擇的近似算法中的某些范圍是被允許的。The general intent is that an implementer should be able to use the same mathematical library for ECMAScript on a given hardware platform that is available to C programmers on that platform.

 Although the choice of algorithms is left to the implementation, it is recommended (but not specified by this standard) that implementations use the approximation algorithms for IEEE 754 arithmetic contained in fdlibm, the freely distributable mathematical library from Sun Microsystems (http://www.netlib.org/fdlibm).

abs (x)

 返回 x 的絕對值。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 ?0, 返回結果是 +0.
  • 若 x 是 ?∞, 返回結果是 +∞.

acos (x)

 返回 x 的反余弦的依賴實現的近似值。結果以弧度形式表示,范圍是 +0 到 +π。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 大于 1, 返回結果是 NaN.
  • 若 x 小于 ?1, 返回結果是 NaN.
  • 若 x 正好是 1, 返回結果是 +0.

asin (x)

 返回 x 的反正弦的依賴實現的近似值。結果以弧度形式表示,范圍是?π/2 到 +π/2。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 大于 1, 返回結果是 NaN.
  • 若 x 小于 –1, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 +0.
  • 若 x 是 ?0, 返回結果是 ?0.

atan (x)

 返回 x 的反正切的依賴實現的近似值。結果以弧度形式表示,范圍是?π/2 到 +π/2。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 +0.
  • 若 x 是 ?0, 返回結果是 ?0.
  • 若 x 是 +∞, 返回結果是 一個依賴于實現的近似值 +π/2.
  • 若 x 是 ?∞, 返回結果是 一個依賴于實現的近似值 ?π/2.

atan2 (y, x)

 返回 -- 參數 y 和 x 的商 y/x-- 的反正切的依賴實現的近似值,y 和 x 的符號用于確定返回值的象限。注:命名為 y 的參數為第一個,命名為 x 的參數為第二個,這是有意,是反正切函數倆參數的慣例。結果以弧度形式表示,范圍是?π到 +π。

  • 若 x 和 y 至少一個是 NaN, 返回結果是 NaN.
  • 若 y>0 且 x 是 +0, 返回結果是 一個依賴于實現的近似值 +π/2.
  • 若 y>0 且 x 是 ?0, 返回結果是 一個依賴于實現的近似值 +π/2.
  • 若 y 是 +0 且 x>0, 返回結果是 +0.
  • 若 y 是 +0 且 x 是 +0, 返回結果是 +0.
  • 若 y 是 +0 且 x 是 ?0, 返回結果是 一個依賴于實現的近似值 +π.
  • 若 y 是 +0 且 x<0, 返回結果是 一個依賴于實現的近似值 +π.
  • 若 y 是 ?0 且 x>0, 返回結果是 ?0.
  • 若 y 是 ?0 且 x 是 +0, 返回結果是 ?0.
  • 若 y 是 ?0 且 x 是 ?0, 返回結果是 一個依賴于實現的近似值 ?π.
  • 若 y 是 ?0 且 x<0, 返回結果是 一個依賴于實現的近似值 ?π.
  • 若 y<0 且 x 是 +0, 返回結果是 一個依賴于實現的近似值 ?π/2.
  • 若 y<0 且 x 是 ?0, 返回結果是 一個依賴于實現的近似值 ?π/2.
  • 若 y>0 且 y 是 有限的 且 x 是 +∞, 返回結果是 +0.
  • 若 y>0 且 y 是 有限的 且 x 是 ?∞, 返回結果是 一個依賴于實現的近似值 +π.
  • 若 y<0 且 y 是 有限的 且 x 是 +∞, 返回結果是 ?0.
  • 若 y<0 且 y 是 有限的 且 x 是 ?∞, 返回結果是 一個依賴于實現的近似值 ?π.
  • 若 y 是 +∞ 且 x 是 有限的 , 返回結果是 返回結果是 一個依賴于實現的近似值 +π/2.
  • 若 y 是 ?∞ 且 x 是 有限的 , 返回結果是 返回結果是 一個依賴于實現的近似值 ?π/2.
  • 若 y 是 +∞ 且 x 是 +∞, 返回結果是 一個依賴于實現的近似值 +π/4.
  • 若 y 是 +∞ 且 x 是 ?∞, 返回結果是 一個依賴于實現的近似值 +3π/4.
  • 若 y 是 ?∞ 且 x 是 +∞, 返回結果是 一個依賴于實現的近似值 ?π/4.
  • 若 y 是 ?∞ 且 x 是 ?∞, 返回結果是 一個依賴于實現的近似值 ?3π/4.

ceil (x)

 返回不小于 x 的且為數學整數的最小 ( 接近?∞) 數字值。如果 x 已是整數,則返回 x。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 +0.
  • 若 x 是 ?0, 返回結果是 ?0.
  • 若 x 是 +∞, 返回結果是 +∞.
  • 若 x 是 ?∞, 返回結果是 ?∞.
  • 若 x 小于 0 但大于 -1, 返回結果是 ?0.

 Math.ceil(x) 的值與 -Math.floor(-x) 的值相同。

cos (x)

 返回 x 的余弦的依賴實現的近似值。參數被當做是弧度值。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 1.
  • 若 x 是 ?0, 返回結果是 1.
  • 若 x 是 +∞, 返回結果是 NaN.
  • 若 x 是 ?∞, 返回結果是 NaN.

exp (x)

 返回 x 的指數的依賴實現的近似值(e 為 x 次方,e 為自然對數的底)。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 1.
  • 若 x 是 ?0, 返回結果是 1.
  • 若 x 是 +∞, 返回結果是 +∞.
  • 若 x 是 ?∞, 返回結果是 +0.

floor (x)

 返回不大于 x 的且為數學整數的最大 ( 接近 +∞) 數字值。如果 x 已是整數,則返回 x。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 +0.
  • 若 x 是 ?0, 返回結果是 ?0.
  • 若 x 是 +∞, 返回結果是 +∞.
  • 若 x 是 ?∞, 返回結果是 ?∞.
  • 若 x 大于 0 但小于 1, 返回結果是 +0.

 Math.floor(x) 的值與 -Math.ceil(-x) 的值相同。

log (x)

 返回 x 的自然對數的依賴于實現的近似值 .

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 小于 0, 返回結果是 NaN.
  • 若 x 是 +0 或 ?0, 返回結果是 ?∞.
  • 若 x 是 1, 返回結果是 +0.
  • 若 x 是 +∞, 返回結果是 +∞.

max ( [ value1 [ , value2 [ , … ] ] ] )

 給定零或多個參數,對每個參數調用 ToNumber 并返回調用結果里的最大值。

  • 若 沒有給定參數 , 返回結果是 ?∞.
  • 若 任何值是 NaN, 返回結果是 NaN.
  • 按照 11.8.5 指定方式進行值比較,確定最大值,與 11.8.5 指定方式的一個不同點是在這里 +0 被看作大于 -0.

 max 方法的 length 屬性是 2。

min ( [ value1 [ , value2 [ , … ] ] ] )

 給定零或多個參數,對每個參數調用 ToNumber 并返回調用結果里的最小值。

  • 若 沒有給定參數 , 返回結果是 +∞.
  • 若 任何值是 NaN, 返回結果是 NaN.
  • 按照 11.8.5 指定方式進行值比較,確定最小值,與 11.8.5 指定方式的一個不同點是在這里 +0 被看作大于 -0.

 min 方法的 length 屬性是 2。

pow (x, y)

 返回 x 的 y 次方的依賴于實現的近似值 .

  • 若 y 是 NaN, 返回結果是 NaN.
  • 若 y 是 +0, 返回結果是 1, 即使 x 是 NaN.
  • 若 y 是 ?0, 返回結果是 1, 即使 x 是 NaN.
  • 若 x 是 NaN 且 y 是 非零 , 返回結果是 NaN.
  • 若 abs(x)>1 且 y 是 +∞, 返回結果是 +∞.
  • 若 abs(x)>1 且 y 是 ?∞, 返回結果是 +0.
  • 若 abs(x)==1 且 y 是 +∞, 返回結果是 NaN.
  • 若 abs(x)==1 且 y 是 ?∞, 返回結果是 NaN.
  • 若 abs(x)<1 且 y 是 +∞, 返回結果是 +0.
  • 若 abs(x)<1 且 y 是 ?∞, 返回結果是 +∞.
  • 若 x 是 +∞ 且 y>0, 返回結果是 +∞.
  • 若 x 是 +∞ 且 y<0, 返回結果是 +0.
  • 若 x 是 ?∞ 且 y>0 且 y 是 一個奇數 , 返回結果是 ?∞.
  • 若 x 是 ?∞ 且 y>0 且 y 不是 一個奇數 , 返回結果是 +∞.
  • 若 x 是 ?∞ 且 y<0 且 y 是 一個奇數 , 返回結果是 ?0.
  • 若 x 是 ?∞ 且 y<0 且 y 不是 一個奇數 , 返回結果是 +0.
  • 若 x 是 +0 且 y>0, 返回結果是 +0.
  • 若 x 是 +0 且 y<0, 返回結果是 +∞.
  • 若 x 是 ?0 且 y>0 且 y 是 一個奇數 , 返回結果是 ?0.
  • 若 x 是 ?0 且 y>0 且 y 不是 一個奇數 , 返回結果是 +0.
  • 若 x 是 ?0 且 y<0 且 y 是 一個奇數 , 返回結果是 ?∞.
  • 若 x 是 ?0 且 y<0 且 y 不是 一個奇數 , 返回結果是 +∞.
  • 若 x<0 且 x 是 有限的 且 y 是 有限的 and y 不是整數 , 返回結果是 NaN.

random ( )

 返回一個大于或等于 0 但小于 1 的符號為正的數字值,選擇隨機或在該范圍內近似均勻分布的偽隨機,用一個依賴與實現的算法或策略。此函數不需要參數。

round (x)

 返回最接近 x 且為數學整數的數字值。如果兩個整數同等接近 x,則結果是接近 +∞的數字值 。如果 x 已是整數,則返回 x。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 +0.
  • 若 x 是 ?0, 返回結果是 ?0.
  • 若 x 是 +∞, 返回結果是 +∞.
  • 若 x 是 ?∞, 返回結果是 ?∞.
  • 若 x 大于 0 但小于 0.5, 返回結果是 +0.
  • 若 x 小于 0 但大于或等于 -0.5, 返回結果是 ?0.

 Math.round(3.5) 返回 4, 但 Math.round(–3.5) 返回 –3.

 當 x 為 ?0 或 x 小于 0 當大于大于等于 -0.5 時,Math.round(x) 返回 ?0, 但 Math.floor(x+0.5) 返回 +0,除了這種情況之外 Math.round(x) 的返回值與 Math.floor(x+0.5) 的返回值相同。

sin (x)

 返回 x 的正弦的依賴實現的近似值。參數被當做是弧度值。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 +0.
  • 若 x 是 ?0, 返回結果是 ?0.
  • 若 x 是 +∞ 或 ?∞, 返回結果是 NaN.

sqrt (x)

 返回 x 的平方根的依賴實現的近似值。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 小于 0, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 +0.
  • 若 x 是 ?0, 返回結果是 ?0.
  • 若 x 是 +∞, 返回結果是 +∞.

tan (x)

 返回 x 的正切的依賴實現的近似值。參數被當做是弧度值。

  • 若 x 是 NaN, 返回結果是 NaN.
  • 若 x 是 +0, 返回結果是 +0.
  • 若 x 是 ?0, 返回結果是 ?0.
  • 若 x 是 +∞ 或 ?∞, 返回結果是 NaN.


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號