第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

JavaScript 入門教程

JavaScript Math

Math 是一個內(nèi)置對象, 它具有數(shù)學(xué)常數(shù)和函數(shù)的屬性和方法。(MDN)

Math 對象提供了一些列的數(shù)學(xué)方法和常量,如三角函數(shù)、隨機(jī)數(shù)、π等。

1. 數(shù)學(xué)方法

數(shù)學(xué)方法其實(shí)就是常用的數(shù)學(xué)中的函數(shù),如三角函數(shù)。

其中用到較多的是使用 Math.random() 來產(chǎn)生隨機(jī)數(shù)。

以下列舉部分常用的方法。

1.1 Math.floor

Math.floor() 返回小于或等于一個給定數(shù)字的最大整數(shù)。

Math.floor就是對一個數(shù)進(jìn)行向下取整。

var num1 = Math.floor(2.4);
var num2 = Math.floor(2.9);

console.log(num1); // 輸出:2
console.log(num2); // 輸出:2

因?yàn)槭窍蛳氯≌?,不會進(jìn)行四舍五入,所以不論是 2.4 還是 2.9 ,經(jīng)過 Math.floor 處理后,都為 2 。

1.2 Math.ceil

Math.ceil() 函數(shù)返回大于或等于一個給定數(shù)字的最小整數(shù)。

Math.ceil 就是對一個數(shù)進(jìn)行向上取整。

var num1 = Math.ceil(2.4);
var num2 = Math.ceil(2.9);

console.log(num1); // 輸出:3
console.log(num2); // 輸出:3

與 Math.floor 相反,Math.ceil 向上取整,也不會進(jìn)行四舍五入,所以結(jié)果都為 3 。

許多開發(fā)者經(jīng)常會弄混 Math.floorMath.ceil ,其實(shí)可以根據(jù)方法名的中譯來記憶,floor 可以理解成地板,ceil 可以理解成天花板,所以前者是向下取整,后者是向上取整。

1.3 Math.random

Math 下的 random 方法調(diào)用后返回一個大于等于零且小于一的隨機(jī)數(shù),即區(qū)間 [0, 1) 。

var random = Math.random();

console.log(random);

可以嘗試運(yùn)行多次這段代碼,random變量的值出現(xiàn)一樣的概率很低。

事實(shí)上 Math.random() 產(chǎn)生的隨機(jī)數(shù)并不是真正的隨機(jī)數(shù),其返回的“隨機(jī)數(shù)”是由一個確定的算法得出的,這種隨機(jī)數(shù)會稱之為偽隨機(jī)數(shù)

1.3.1 隨機(jī)數(shù)應(yīng)用

在需要隨機(jī)數(shù)的需求時,大部分情況下不會是需要一個區(qū)間為 [0, 1) 的隨機(jī)數(shù),如按學(xué)號抽獎。

假設(shè)學(xué)號的范圍是 1 至 100 ,那就需要產(chǎn)生一個 1 至 100 之間的隨機(jī)數(shù)。

這樣可以換個思路,隨機(jī)數(shù)還是生成 [0, 1) 范圍的大小,但是將這個值放大到 [1, 100] 區(qū)間的范圍。

所以就可以把隨機(jī)數(shù)的結(jié)果先放大 100 倍,即 Math.random() * 100 ,這時候產(chǎn)生的數(shù),區(qū)間就是 [0, 100) 。

因?yàn)樽钚≈敌枰氖?,而不是1,就可以將這個隨機(jī)數(shù)表達(dá)式修改成 Math.random() * 100 + 1 ,這時候區(qū)間就變成了 [1, 101) 。

最后只要保證右側(cè)的區(qū)間不大于 100 即可,因?yàn)橛覀?cè)區(qū)間取不到 101 ,所以可以對結(jié)果進(jìn)行向下取整。

最終表達(dá)式為:

Math.floor(Math.random() * 100 + 1);

由此就可以推出一個較為通用的隨機(jī)數(shù)公式:

// 隨機(jī)數(shù)區(qū)間:[下限, 上限]
Math.floor(Math.random() * 上限 + 下限);

2. 數(shù)學(xué)常量

許多數(shù)學(xué)常量被作為屬性放在 Math 對象下,如歐拉常數(shù)(E),圓周率(PI)。

var e = Math.E;
var pi = Math.PI;

console.log(e); // 輸出:2.718281828459045
console.log(pi); // 輸出:3.141592653589793

日常開發(fā)中,大部分情況下會選擇自己維護(hù)一個常量,因?yàn)榭梢噪S時的統(tǒng)一的修改精度。

3. 常量與方法列表

因?yàn)槎际浅A颗c方法,這里提供相應(yīng)的列表供快速查閱,內(nèi)容引用自 MDN 。

3.1 常量

常量 描述
Math.E 表示自然對數(shù)的底數(shù)(或稱為基數(shù)),約等于 2.718。
Math.LN10 表示 10 的自然對數(shù),約為 2.302。
Math.LN2 表示 2 的自然對數(shù),約為 0.693。
Math.LOG10E 表示以 10 為底數(shù),e 的對數(shù),約為 0.434。
Math.LOG2E 表示以 2 為底數(shù),e 的對數(shù),約為 1.442。
Math.PI 表示一個圓的周長與直徑的比例,約為 3.14159。
Math.SQRT1_2 屬性表示 1/2 的平方根,約為 0.707。
Math.SQRT2 表示 2 的平方根,約為 1.414。

3.2 方法

方法 描述
Math.abs 返回一個數(shù)的的絕對值。
Math.acos 返回一個數(shù)的反余弦值(單位為弧度)。
Math.acosh 返回一個數(shù)字的反雙曲余弦值。
Math.asin 返回一個數(shù)值的反正弦(單位為弧度)。
Math.asinh 返回給定數(shù)字的反雙曲正弦值
Math.atan 返回一個數(shù)值的反正切(以弧度為單位)
Math.atan2 返回從原點(diǎn)(0,0)到(x,y)點(diǎn)的線段與x軸正方向之間的平面角度(弧度值)。
Math.atanh 函數(shù)返回一個數(shù)值反雙曲正切值。
Math.cbrt 返回任意數(shù)字的立方根。
Math.ceil 返回大于或等于一個給定數(shù)字的最小整數(shù)。
Math.clz32 返回一個數(shù)字在轉(zhuǎn)換成 32 無符號整形數(shù)字的二進(jìn)制形式后, 開頭的 0 的個數(shù)。
Math.cos 返回一個數(shù)值的余弦值。
Math.cosh 返回?cái)?shù)值的雙曲余弦函數(shù)。
Math.exp 函數(shù)返回 ex,x 表示參數(shù),e 是歐拉常數(shù)(Euler’s constant),自然對數(shù)的底數(shù)。
Math.expm1 函數(shù)返回 Ex - 1, 其中 x 是該函數(shù)的參數(shù), E 是自然對數(shù)的底數(shù)。
Math.floor 返回小于或等于一個給定數(shù)字的最大整數(shù)。
Math.fround 將任意的數(shù)字轉(zhuǎn)換為離它最近的單精度浮點(diǎn)數(shù)形式的數(shù)字。
Math.hypot 函數(shù)返回它的所有參數(shù)的平方和的平方根。
Math.imul 該函數(shù)將兩個參數(shù)分別轉(zhuǎn)換為 32 位整數(shù),相乘后返回 32 位結(jié)果,類似 C 語言的 32 位整數(shù)相乘。
Math.log 返回一個數(shù)的自然對數(shù)。
Math.log10 函數(shù)返回一個數(shù)字以 10 為底的對數(shù)。
Math.log1p 函數(shù)返回一個數(shù)字加1后的自然對數(shù) (底為 E), 即log(x+1)。
Math.log2 函數(shù)返回一個數(shù)字以 2 為底的對數(shù)。
Math.max 返回一組數(shù)中的最大值。
Math.min 返回零個或更多個數(shù)值的最小值。
Math.pow 函數(shù)返回基數(shù)(base)的指數(shù)(exponent)次冪,即 baseexponent
Math.random 函數(shù)返回一個浮點(diǎn), 偽隨機(jī)數(shù)在范圍從0到小于1,也就是說,從0(包括0)往上,但是不包括1(排除1)。
Math.round 函數(shù)返回一個數(shù)字四舍五入后最接近的整數(shù)。
Math.sign 函數(shù)返回一個數(shù)字的符號, 指示數(shù)字是正數(shù),負(fù)數(shù)還是零。
Math.sin 函數(shù)返回一個數(shù)值的正弦值。
Math.sinh 函數(shù)返回一個數(shù)字(單位為角度)的雙曲正弦值。
Math.sqrt 函數(shù)返回一個數(shù)的平方根。
Math.tan 返回一個數(shù)值的正切值。
Math.tanh 函數(shù)將會返回一個數(shù)的雙曲正切函數(shù)值。
Math.trunc 方法會將數(shù)字的小數(shù)部分去掉,只保留整數(shù)部分。

4. 小結(jié)

Math 對象包含了很多數(shù)學(xué)方法與常量,較常用的是用于產(chǎn)生偽隨機(jī)數(shù)的 Math.random,根據(jù)特性可以推出隨機(jī)數(shù) [下限, 上限] 的生成公式 Math.floor(Math.random() * 上限 + 下限);。

盡量將 Math 對象下的方法過一遍,留住印象,避免造不必要的輪子。