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

全部開(kāi)發(fā)者教程

JavaScript 入門(mén)教程

JavaScript Math

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

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

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

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

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

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

1.1 Math.floor

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

Math.floor就是對(duì)一個(gè)數(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)槭窍蛳氯≌?,不?huì)進(jìn)行四舍五入,所以不論是 2.4 還是 2.9 ,經(jīng)過(guò) Math.floor 處理后,都為 2

1.2 Math.ceil

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

Math.ceil 就是對(duì)一個(gè)數(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 向上取整,也不會(huì)進(jìn)行四舍五入,所以結(jié)果都為 3 。

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

1.3 Math.random

Math 下的 random 方法調(diào)用后返回一個(gè)大于等于零且小于一的隨機(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ù)”是由一個(gè)確定的算法得出的,這種隨機(jī)數(shù)會(huì)稱之為偽隨機(jī)數(shù)

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

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

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

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

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

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

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

最終表達(dá)式為:

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

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

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

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

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

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

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

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

3. 常量與方法列表

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

3.1 常量

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

3.2 方法

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

4. 小結(jié)

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

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