<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 16\. `Math` > 原文: [http://exploringjs.com/impatient-js/ch_math.html](http://exploringjs.com/impatient-js/ch_math.html) > > 貢獻者:[飛龍](https://github.com/wizardforcel) `Math`是具有數據屬性和處理數字的方法的對象。 你可以把它看作一個偽模塊。今天,它可能會被創建為一個模塊,但它早在模塊之前就存在了。 ### 16.1。數據屬性 * `Math.E: number` <sup>[ES1]</sup> 歐拉數,自然對數的基數,約為 2.7182818284590452354。 * `Math.LN10: number` <sup>[ES1]</sup> 10 的自然對數,約為 2.302585092994046。 * `Math.LN2: number` <sup>[ES1]</sup> 2 的自然對數為,約為 0.6931471805599453。 * `Math.LOG10E: number` <sup>[ES1]</sup> `e`的基數為 10 的對數,約為 0.4342944819032518。 * `Math.LOG2E: number` <sup>[ES1]</sup> `e`的基數為 2 的對數,約為 1.4426950408889634。 * `Math.PI: number` <sup>[ES1]</sup> 數學常數 π,圓周長與直徑的比值,約為 3.1415926535897932。 * `Math.SQRT1_2: number` <sup>[ES1]</sup> 1/2 的平方根,約為 0.7071067811865476。 * `Math.SQRT2: number` <sup>[ES1]</sup> 2 的平方根,約為 1.4142135623730951。 ### 16.2。指數,根,對數 * `Math.cbrt(x: number): number` <sup>[ES6]</sup> 返回`x`的立方根。 ```js > Math.cbrt(8) 2 ``` * `Math.exp(x: number): number` <sup>[ES1]</sup> 返回`e ** x`(`e`為歐拉數)。`Math.log()`的逆。 ```js > Math.exp(0) 1 > Math.exp(1) === Math.E true ``` * `Math.expm1(x: number): number` <sup>[ES6]</sup> 返回`Math.exp(x)-1`。`Math.log1p()`的逆。非常小的數字(接近 0 的小數)以更高的精度表示。只要`.exp()`的結果接近 1,此函數就會返回更精確的值。 * `Math.log(x: number): number` <sup>[ES1]</sup> 返回`x`的自然對數(基數為`e`,歐拉常數)。 `Math.exp()`的逆。 ```js > Math.log(1) 0 > Math.log(Math.E) 1 > Math.log(Math.E ** 2) 2 ``` * `Math.log1p(x: number): number` <sup>[ES6]</sup> 返回`Math.log(1 + x)`。 `Math.expm1()`的逆。非常小的數字(接近 0 的徐愛三個月)以更高的精度表示。只要`.log()`的參數接近 1,你就可以向此函數提供更精確的數字。 * `Math.log10(x: number): number` <sup>[ES6]</sup> 返回`x`的基數為 10 的對數。`10 ** x`的逆。 ```js > Math.log10(1) 0 > Math.log10(10) 1 > Math.log10(100) 2 ``` * `Math.log2(x: number): number` <sup>[ES6]</sup> 返回`x`的基數為 2 的對數。`2 ** x`的逆。 ```js > Math.log2(1) 0 > Math.log2(2) 1 > Math.log2(4) 2 ``` * `Math.pow(x: number, y: number): number` <sup>[ES1]</sup> 計算`x`的`y`次冪。與`x ** y`相同。 ```js > Math.pow(2, 3) 8 > Math.pow(25, 0.5) 5 ``` * `Math.sqrt(x: number): number` <sup>[ES1]</sup> 返回`x`的平方根。 `x ** 2`的逆。 ```js > Math.sqrt(9) 3 ``` ### 16.3。舍入 舍入意味著將任意數字轉換為整數(不帶小數的數字)。表 15 列出了可用的函數,以及它們為少數代表性輸入返回的內容。 表 15:`Math`的舍入函數 | | `-2.9` | `-2.5` | `-2.1` | `2.1` | `2.5` | `2.9` | | --- | --- | --- | --- | --- | --- | --- | | `Math.floor` | `-3` | `-3` | `-3` | `2` | `2` | `2` | | `Math.ceil` | `-2` | `-2` | `-2` | `3` | `3` | `3` | | `Math.round` | `-3` | `-2` | `-2` | `2` | `3` | `3` | | `Math.trunc` | `-2` | `-2` | `-2` | `2` | `2` | `2` | * `Math.ceil(x: number): number` <sup>[ES1]</sup> 返回`x ≤ i`的最小(最接近`-∞`)整數`i`。 ```js > Math.ceil(1.9) 2 > Math.ceil(2.1) 3 ``` * `Math.floor(x: number): number` <sup>[ES1]</sup> 返回`i ≤ x`的最大(最接近`+∞`)整數`i`。 ```js > Math.floor(1.9) 1 > Math.floor(2.1) 2 ``` * `Math.round(x: number): number` <sup>[ES1]</sup> 返回最接近`x`的整數(接近正無窮大的整數)。如果`x`的小數部分為`.5`,則`.round()`向上舍入: ```js > Math.round(2.5) 3 > Math.round(-2.5) -2 ``` * `Math.trunc(x: number): number` <sup>[ES6]</sup> 刪除`x`的小數部分并返回整數結果。 ```js > Math.trunc(1.9) 1 > Math.trunc(2.1) 2 ``` ### 16.4。三角函數 所有角度均以弧度表示。使用以下兩個函數在度和弧度之間進行轉換。 ```js function toRadians(degrees) { return degrees / 180 * Math.PI; } function toDegrees(radians) { return radians / Math.PI * 180; } ``` * `Math.acos(x: number): number` <sup>[ES1]</sup> 返回`x`的反余弦。 ```js > Math.acos(0) 1.5707963267948966 > Math.acos(1) 0 ``` * `Math.acosh(x: number): number` <sup>[ES6]</sup> 返回`x`的反雙曲余弦值。 * `Math.asin(x: number): number` <sup>[ES1]</sup> 返回`x`的反正弦。 ```js > Math.asin(0) 0 > Math.asin(1) 1.5707963267948966 ``` * `Math.asinh(x: number): number` <sup>[ES6]</sup> 返回`x`的反雙曲正弦值。 * `Math.atan(x: number): number` <sup>[ES1]</sup> 返回`x`的反正切。 * `Math.atanh(x: number): number` <sup>[ES6]</sup> 返回`x`的反雙曲正切值。 * `Math.atan2(y: number, x: number): number` <sup>[ES1]</sup> 返回商 y / x 的反正切。 * `Math.cos(x: number): number` <sup>[ES1]</sup> 返回`x`的余弦值。 ```js > Math.cos(0) 1 > Math.cos(Math.PI) -1 ``` * `Math.cosh(x: number): number` <sup>[ES6]</sup> 返回`x`的雙曲余弦值。 * `Math.hypot(...values: number[]): number` <sup>[ES6]</sup> 返回`values`(畢達哥拉斯定理)的平方和的平方根: ```js > Math.hypot(3, 4) 5 ``` * `Math.sin(x: number): number` <sup>[ES1]</sup> 返回`x`的正弦值。 ```js > Math.sin(0) 0 > Math.sin(Math.PI / 2) 1 ``` * `Math.sinh(x: number): number` <sup>[ES6]</sup> 返回`x`的雙曲正弦值。 * `Math.tan(x: number): number` <sup>[ES1]</sup> 返回`x`的正切值。 ```js > Math.tan(0) 0 > Math.tan(1) 1.5574077246549023 ``` * `Math.tanh(x: number): number;` <sup>[ES6]</sup> 返回`x`的雙曲正切值。 ### 16.5。 asm.js 助手 WebAssembly 是一個基于 JavaScript 的虛擬機,大多數 JavaScript 引擎都支持它。 asm.js 是 WebAssembly 的前身。如果編譯靜態語言(例如 C++),它是 JavaScript 的一個子集,可以生成快速可執行文件。在某種程度上,它也是一個虛擬機,在 JavaScript 的范圍內。 以下兩種方法有助于 asm.js,并且幾乎沒有用例。 * `Math.fround(x: number): number` <sup>[ES6]</sup> 將`x`舍入為 32 位浮點值(`float`)。asm.js 告訴引擎在內部使用`float`值(正常數字是雙精度并占用 64 位)。 * `Math.imul(x: number, y: number): number` <sup>[ES6]</sup> 將兩個 32 位整數`x`和`y`相乘,并返回結果的低 32 位。需要 asm.js 。通過將 64 位結果強制轉換為 32 位,可以模擬所有其他基本的 32 位數學運算。使用乘法,您可能會丟失超過 32 位的結果位。 ### 16.6。各種其他函數 * `Math.abs(x: number): number` <sup>[ES1]</sup> 返回`x`的絕對值。 ```js > Math.abs(3) 3 > Math.abs(-3) 3 > Math.abs(0) 0 ``` * `Math.clz32(x: number): number` <sup>[ES6]</sup> 計算 32 位整數`x`中的前導零位。用于 DSP 算法。 ```js > Math.clz32(0b01000000000000000000000000000000) 1 > Math.clz32(0b00100000000000000000000000000000) 2 > Math.clz32(2) 30 > Math.clz32(1) 31 ``` * `Math.max(...values: number[]): number` <sup>[ES1]</sup> 將`values`轉換為數字并返回最大的數字。 ```js > Math.max(3, -5, 24) 24 ``` * `Math.min(...values: number[]): number` <sup>[ES1]</sup> 將`values`轉換為數字并返回最小的數字。 ```js > Math.min(3, -5, 24) -5 ``` * `Math.random(): number` <sup>[ES1]</sup> 返回偽隨機數`n`,其中 `0 ≤ n < 1`。 計算隨機整數`i`,其中 `0 ≤ i < max`: ```js function getRandomInteger(max) { return Math.floor(Math.random() * max); } ``` * `Math.sign(x: number): number` <sup>[ES6]</sup> 返回數字的符號: ```js > Math.sign(-8) -1 > Math.sign(0) 0 > Math.sign(3) 1 ``` ### 16.7。來源 * 維基百科 * [TypeScript 的內置類型](https://github.com/Microsoft/TypeScript/blob/master/lib/) * [JavaScript 的 MDN 網絡文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript) * [ECMAScript 語言規范](https://tc39.github.io/ecma262/)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看