概念
-
Math 是javaScript的內建物件,包含了部分數學常數屬性和數學函式方法。
-
Math 不是一個函式物件,使用者Number型別進行使用,不支援BigInt。
-
Math 的所有屬性與方法都是靜態的。
-
比如說當我們使用圓周率的時候,寫法是 Math.PI
-
當使用正餘弦函式的寫法是 Math.sin(x),x 是要傳入的引數。
-
Math 的常量是使用 JavaScript 中的全精度浮點數來定義的。
math原生屬性
// 尤拉常數,也是自然對數的底數,約等於 2.718。
console.log("Math.E", Math.E); // Math.E 2.718281828459045
// 2 的自然對數,約等於 0.693。
console.log("Math.LN2", Math.LN2); // Math.LN2 0.6931471805599453
// 10 的自然對數,約等於 2.303。
console.log("Math.LN10", Math.LN10); // Math.LN10 2.302585092994046
// 以 2 為底的 E 的對數,約等於 1.443。
console.log("Math.LOG2E", Math.LOG2E); // Math.LOG2E 1.4426950408889634
// 以 10 為底的 E 的對數,約等於 0.434。
console.log("Math.LOG10E", Math.LOG10E); // Math.LOG10E 0.4342944819032518
// 圓周率,一個圓的周長和直徑之比,約等於 3.14159。
console.log("Math.PI", Math.PI); // Math.PI 3.141592653589793
// 計算圓周長
function calculateCircumference(radius) {
return 2 * Math.PI * radius;
}
console.log("calculateCircumference(1)", calculateCircumference(1)); // calculateCircumference(1) 6.283185307179586
// 二分之一 ½ 的平方根,同時也是 2 的平方根的倒數 1 2 ,約等於 0.707。
console.log("Math.SQRT1_2", Math.SQRT1_2); // Math.SQRT1_2 0.7071067811865476
// 2 的平方根,約等於 1.414。
console.log("Math.SQRT2", Math.SQRT2); // Math.SQRT2 1.4142135623730951
math常用方法
Math.abs() // 指定數字 “x“ 的絕對值
Math.abs("-1"); // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs("string"); // NaN
Math.abs(); // NaN
math在日常開發中的數字處理方法
// Math.round() 函式返回一個數字四捨五入後最接近的整數。
console.log(Math.round(20.49)); //20
console.log(Math.round(20.5)); //21
console.log(Math.round(-20.5)); //-20
console.log(Math.round(-20.51)); //-21
// Math.ceil() 返回大於或等於一個給定數字的最小整數,向上取整。
console.log(Math.ceil(0.95));
// 1
console.log(Math.ceil(4));
// 4
console.log(Math.ceil(7.004));
// 8
console.log(Math.ceil(-7.004));
// -7
// Math.floor() 返回小於或等於一個給定數字的最大整數, Math.floor()為向下取整。
Math.floor(45.95);
// 45
Math.floor(45.05);
// 45
Math.floor(4);
// 4
Math.floor(-45.05);
// -46
Math.floor(-45.95);
// -46
// Math.max() 返回一組數當中的最大值
console.log(Math.max(1, 3, 2));
// 3
console.log(Math.max(-1, -3, -2));
// -1
const array1 = [1, -3, 2];
console.log(Math.max(...array1));
// 3
// Math.min() 返回零個或更多個數值的最小值。
console.log(Math.min()); // Infinity
console.log(Math.min(1, 2, 3, -4)); // -4
// 使用 Math.min() 裁剪值(Clipping a value)
function f(x) {
if (x > 5) {
return (x = 5);
}
return (x = 6);
}
var finalMin = Math.min(f(2), 2, 3, 4, 5, 30);
console.log("finalMin", finalMin); // 2
// Math.sqrt() 返回一個數的平方根
function calcHypotenuse(a, b) {
return Math.sqrt(a * a + b * b);
}
console.log(calcHypotenuse(3, 4));
// 5
console.log(calcHypotenuse(5, 12));
// 13
console.log(calcHypotenuse(0, 0));
// 0
使用Math.random()生成隨機數
/**
*
* Math.random() 函式返回一個浮點數
* 偽隨機數在範圍從0到小於1,也就是說,從0(包括0)往上,但是不包括1(排除1),
* 然後您可以縮放到所需的範圍。實現將初始種子選擇到隨機數生成演算法;它不能被使用者選擇或重置。
*
* */
console.log(Math.random());
function getRandomNumber(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值
}
console.log(getRandomNumber(2, 100));
小結
- 以上例子包含了math常用的方法和屬性的api
- math在使用過程中,可以結合random以及max和min方法等,生成需要的隨機數
- 通過round、floor、ceil,我們可以針對數字進行進一步地取值,得到符合要求的數字格式
Math更多方法請查閱文件
Mathjs外掛
文件地址
https://mathjs.org/examples/index.html
-
mathjs的外掛提供的方法比較全面,涵蓋了從代數計算到函式計算,貨幣運算等方法,矩陣序列化等,更多方法可以檢視官方文件。
-
基礎使用方法:
npm install mathjs
import { sqrt } from 'mathjs'
console.log(sqrt(-4).toString()) // 2i
原始碼地址
文章個人部落格地址:javaScript中Math內建物件基本方法入門
歡迎關注公眾號:程式猿布歐,不定期更新一些前端入門文章
創作不易,轉載請註明出處和作者。