// 求平方根的 2 種方法。
數學.sqrt(100); // 10、方法一
100*(1/2); // 10、方法2
8*(1/3); // 2, 也適用於立方根
Math.max(23,54,12,6,32,98,87,34,11); // 98
// 也進行型別強制
Math.min(23,54,12,'6',32,98,87,34,11); // 6
// 不進行解析
Math.min(23,54,12,'6px',32,98,87,34,11); // NaN
Math.PI * (Number.parseFloat('10px')**(2)); // 取得區域
Math.trunc(Math.random() * 6) 1;
const randomInt = (min, max) =>; Math.floor(Math.random() * (最大-最小)) 1 分鐘;
randomInt(10,20);
// 所有這些 Math.method() 都會進行型別強制轉換。
數學.trunc(25.4); // 25
數學.round(25.4); // 25
數學.floor(25.4); // 25
數學.ceil(25.4); // 26
Math.trunc(-25.4); // -25
數學.floor(-25.4); // -26
// 四捨五入小數:.toFixed 傳回字串,而不是數字
(2.5).toFixed(0); // '3'
(2.5).toFixed(3); // '2.500'
(2.345).toFixed(2); // '2.35'
// 加一元符號將其轉換為數字。
(2.345).toFixed(2); // 2.35
// Number 是一個原語,因此它們沒有方法。所以在幕後,JS會進行裝箱,即將原始物件轉換為無對象,執行操作,然後當操作完成時,將其轉換回原始物件。
5%2; // 1
8 % 3; // 2
8 / 3; // 2.6666666666666665
// 奇數或偶數
const isEven = n =>; n%2 === 0;
isEven(20);
isEven(21);
isEven(22);
用例:用於處理所有奇數行、偶數行、第 n 次等
用來表示非常大的數字
這些是可以放置在數字之間的下劃線。引擎會忽略這些底線,減少開發人員的困惑。
前任。常量直徑 = 287_460_000_000;
直徑; // 287460000000
消費價格 = 342_25;
價格; // 34225
服務費1 = 1_500;
常量費用2 = 15_00;
費用1 === 費用2; // true
底線只能放在數字之間。
它不能與小數點相鄰。
它也不能放在編號的開頭或結尾。
const PI = 3.14_15;
PI; // 3.1415
const PI = 3.1415; // 不能放在開頭。
const PI = 3.1415; // 不能放在最後
常數 PI = 3_.1415; // 不能與小數點相鄰放置。
const PI = 3.1415; // 不能與小數點相鄰放置。
const PI = 3._1415; // 不能連續放置兩個。
數字('2500'); // 2500
數字('25_00'); // NaN ,因此我們只能在直接將數字分配給變數時使用。因此,如果字串中儲存了“否”或從 API 中獲取了“否”,則為避免錯誤,請勿使用“_”數字分隔符號。
parseInt 也類似,即 _ 之後的任何內容都會被丟棄,如下所示:
parseInt('25_00'); // 25
特殊類型的整數,在 ES2020 中引入
數字在內部表示為 64 位,即 64 個 1 或 0 來表示任何數字。僅53位元用於儲存數字,其餘用於儲存小數點位置和符號。因此,數字的大小有限制,即 ((2*53) - 1)。這是 JS 可以放心代表的最大的「否」。基數是 2,因為我們在儲存時以二進位形式工作。
2*53 - 1; // 9007199254740991
Number.MAX_SAFE_INTEGER; // 9007199254740991
任何大於此的東西都是不安全的,即它無法準確表示。對於大於此值的數字,精確度將會遺失,如最後一位數字所示。有時可能有效,有時則無效。
Number.MAX_SAFE_INTEGER 1; // 9007199254740992
Number.MAX_SAFE_INTEGER 2; // 9007199254740992
Number.MAX_SAFE_INTEGER 3; // 9007199254740994
Number.MAX_SAFE_INTEGER 4; // 9007199254740996
如果我們從比這個大的 API 得到一個更大的 no,那麼 JS 將無法處理它。為了解決上述問題,ES2020 中引入了 BigInt 一種新的原始資料類型。這可以儲存我們想要的大小的整數。
在 no 末尾加上「n」使其成為 BigInt。例如
const num = 283891738917391283734234324223122313243249821n;
數量; // 283891738917391283734234324223122313243249821n
BigInt 是顯示如此巨大數字的 JS 方式。
另一種使用建構子 Fn 來建立 BigInt 數字的方法。
const x = BigInt(283891738917391283734234324223122313243249821);
x; // 283891738917391288062871194223849945790676992n
操作:所有算術運算子與 BigInt 的工作原理相同;
const x = 100n 100n;
x; // 200n
const x = 10n * 10n;
x; // 100n
const x = 100n;
const y = 10;
z = x*y; // 錯誤
要使其運作,請使用 BigInt 建構子 Fn:
z = x * BigInt(y);
z; // 1000n
20n> 19; // true
20n === 20; // false, === 阻止 JS 進行類型強制。 LHS 和 RHS 都有不同的原始類型,因此結果為「false」。
型別為 20n; // 'bigint'
類型20; // '數字'
20n == 20; // true,因為 JS 透過將 BigInt 轉換為常規數字進行類型強制,僅比較值而不比較類型。
同樣的情況也適用: 20n == '20'; // true
使用運算子時,BigInt 數字不會轉換為字串。
const num = 248923874328974239473829n
「num 很大,即」num; // 'num 很大,即 248923874328974239473829'
注意:
Math.sqrt 不適用於 BigInt。
在 BigInt 的除法過程中,它會丟棄小數部分。
10 / 3; // 3.3333333333333335
10n/3n; // 3n
12n/3n; // 4n
這個新的原始類型為 JS 語言添加了一些新功能,使其可以處理大量的資料。
以上是數學命名空間和 BigInt的詳細內容。更多資訊請關注PHP中文網其他相關文章!