摘要:本文是重溫基礎(chǔ)系列文章的第六篇。以指定的精度返回該數(shù)值對(duì)象的字符串表示,可接收一個(gè)參數(shù),用來指定有效數(shù)個(gè)數(shù)的整數(shù)。
本文是 重溫基礎(chǔ) 系列文章的第六篇。
今日感受:自己需要多總結(jié),會(huì)有不同收獲(比如今晚我做的轉(zhuǎn)正總結(jié))。
系列目錄:
【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理)
【重溫基礎(chǔ)】1.語法和數(shù)據(jù)類型
【重溫基礎(chǔ)】2.流程控制和錯(cuò)誤處理
【重溫基礎(chǔ)】3.循環(huán)和迭代
【重溫基礎(chǔ)】4.函數(shù)
【重溫基礎(chǔ)】5.表達(dá)式和運(yùn)算符
本章節(jié)復(fù)習(xí)的是JS中的數(shù)字類型,涉及的API比較多。
前置基礎(chǔ):
在JavaScript中,數(shù)字為雙精度浮點(diǎn)類型(即一個(gè)數(shù)字范圍只能在-(253-1)和(253-1)之間),整數(shù)類型也一樣。
另外數(shù)字類型也可以是以下三種符號(hào)值:
+Infinity : 正無窮;
-Infinity : 負(fù)無窮;
NaN : 非數(shù)字(not a number);
1.數(shù)字對(duì)象JS中內(nèi)置了Number對(duì)象的一些常量屬性:
屬性 | 描述 |
---|---|
Number.MAX_VALUE | 可表示的最大值 |
Number.MIN_VALUE | 可表示的最小值 |
Number.NaN | 特指“非數(shù)字” |
Number.NEGATIVE_INFINITY | 特指“負(fù)無窮”;在溢出時(shí)返回 |
Number.POSITIVE_INFINITY | 特指“正無窮”;在溢出時(shí)返回 |
Number.EPSILON | 表示1和比最接近1且大于1的最小Number之間的差別 |
Number.MIN_SAFE_INTEGER | JavaScript最小安全整數(shù). |
Number.MAX_SAFE_INTEGER | JavaScript最大安全整數(shù). |
注意:以上所有屬性都是不可寫,不可枚舉,也不可配置。
Number.MAX_VALUE
Number.MAX_VALUE是 Number 對(duì)象的一個(gè)靜態(tài)屬性,值接近于 1.79E+308。大于 Number.MAX_VALUE 的值代表 "Infinity"。
let a = 100; if(a < Number.MAX_VALUE){ console.log("success"); } // success
Number.MIN_VALUE
Number.MIN_VALUE是 Number 對(duì)象的一個(gè)靜態(tài)屬性,值接近于 5e-324,是 JavaScript 里最接近 0 的正值,而不是最小的負(fù)值。
let a = 100; if(a > Number.MIN_VALUE){ console.log("success"); } // success
Number.NaN
Number.NaN 表示“非數(shù)字”,和 NaN 一樣。
Number.POSITIVE_INFINITY
Number.POSITIVE_INFINITY 屬性表示正無窮大,值同全局對(duì)象 Infinity 屬性的值相同。
let a = Number.MAX_VALUE * 2; if(a == Number.POSITIVE_INFINITY){ console.log("success"); } // success
Number.NEGATIVE_INFINITY
Number.NEGATIVE_INFINITY 屬性表示負(fù)無窮大,值和全局對(duì)象的 Infinity 屬性的負(fù)值相同。
let a = - Number.MAX_VALUE * 2; if(a == Number.NEGATIVE_INFINITY){ console.log("success"); } // success
Number.EPSILON
Number.EPSILON屬性表示 1 與Number可表示的大于 1 的最小的浮點(diǎn)數(shù)之間的差值,值接近于 2-52 。
let a = 0.1, b = 0.2, c = 0.3; let d = (Math.abs(a + b - c) < Number.EPSILON); d; // true
Number.MIN_SAFE_INTEGER
JS中最小的安全的integer型數(shù)字 (-(253 - 1))。
Number.MAX_SAFE_INTEGER
JS中最大的安全的integer型數(shù)字 (253 - 1)。
2.數(shù)字方法常見的方法有:
方法 | 描述 |
---|---|
Number.parseFloat() | 把字符串參數(shù)解析成浮點(diǎn)數(shù),和全局方法 parseFloat() 作用一致. |
Number.parseInt() | 把字符串解析成特定基數(shù)對(duì)應(yīng)的整型數(shù)字,和全局方法 parseInt() 作用一致. |
Number.isFinite() | 判斷傳遞的值是否為有限數(shù)字。 |
Number.isInteger() | 判斷傳遞的值是否為整數(shù)。 |
Number.isNaN() | 判斷傳遞的值是否為 NaN. |
Number.isSafeInteger() | 判斷傳遞的值是否為安全整數(shù)。 |
使用方法:
Number.parseFloat()
let a1 = 3.1415, a2 = "3.1114"; Number.parseFloat(a1); // 3.1415; Number.parseFloat(a2); // 3.1111; parseFloat(a1); // 3.1415; parseFloat(a2); // 3.1111; Number.parseFloat == parseFloat;// true
Number.parseInt()
let a1 = "0110"; Number.parseInt(a1, 2); // 6 Number.parseInt(a1, 10); // 110 Number.parseInt = parseInt; // true
Number.isFinite()
Number.isFinite(Infinity); // false Number.isFinite(NaN); // false Number.isFinite(-Infinity); // false Number.isFinite(0); // true Number.isFinite(2e64); // true Number.isFinite("0"); // false, 全局函數(shù) isFinite("0") 會(huì)返回 true
Number.isInteger()
Number.isInteger(0); // true Number.isInteger(1); // true Number.isInteger(-100000); // true Number.isInteger(0.1); // false Number.isInteger(Math.PI); // false Number.isInteger(Infinity); // false Number.isInteger(-Infinity); // false Number.isInteger("10"); // false Number.isInteger(true); // false Number.isInteger(false); // false Number.isInteger([1]); // false
Number.isNaN()
Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0) // true // 下面這幾個(gè)如果使用全局的 isNaN() 時(shí),會(huì)返回 true。 Number.isNaN("NaN"); // false,字符串 "NaN" 不會(huì)被隱式轉(zhuǎn)換成數(shù)字 NaN。 Number.isNaN(undefined); // false Number.isNaN({}); // false Number.isNaN("blabla"); // false // 下面的都返回 false Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN("37"); Number.isNaN("37.37"); Number.isNaN(""); Number.isNaN(" ");
Number.isSafeInteger()
Number.isSafeInteger(3); // true Number.isSafeInteger(Math.pow(2, 53)) // false Number.isSafeInteger(Math.pow(2, 53) - 1) // true Number.isSafeInteger(NaN); // false Number.isSafeInteger(Infinity); // false Number.isSafeInteger("3"); // false Number.isSafeInteger(3.1); // false Number.isSafeInteger(3.0); // true
數(shù)字類型原型上的方法:
方法 | 描述 | 案例 |
---|---|---|
toExponential() | 返回一個(gè)數(shù)字的指數(shù)形式的字符串 | 1.23e+2 |
toFixed() | 返回指定小數(shù)位數(shù)的表示形式 | var a=123,b=a.toFixed(2)//b="123.00" |
toPrecision() | 返回一個(gè)指定精度的數(shù)字。 | a=123中,3會(huì)由于精度限制消失var a=123,b=a.toPrecision(2)//b="1.2e+2" |
toExponential()
以指數(shù)表示法返回該數(shù)值字符串表示形式,可接收一個(gè)參數(shù)指定小數(shù)點(diǎn)后幾位數(shù)字。
let a = 99.6633; let a1 = "字符串:" + a.toExponential(); // "字符串:9.96633e+1" let a2 = "字符串:" + a.toExponential(2);// "字符串:9.97e+1"
toFixed()
使用定點(diǎn)表示法來格式化一個(gè)數(shù),可接收一個(gè)參數(shù)指定保留小數(shù)點(diǎn)后幾位,取值為0-20之間。
注意: 返回的數(shù)據(jù)類型是字符串類型。
let a = 1.2345; a.toFixed(); // "1" a.toFixed(2); // "1.23"
toPrecision()
以指定的精度返回該數(shù)值對(duì)象的字符串表示,可接收一個(gè)參數(shù),用來指定有效數(shù)個(gè)數(shù)的整數(shù)。
let a = 1.2345; let a1 = "字符串:" + a.toPrecision(); // "字符串:1.2345" let a2 = "字符串:" + a.toPrecision(1);// "字符串:1" let a2 = "字符串:" + a.toPrecision(2);// "字符串:1.2"3.數(shù)學(xué)對(duì)象
JS內(nèi)置的數(shù)學(xué)對(duì)象Math,有很多屬性和方法,這里需要注意的是Math對(duì)象中的三角函數(shù)參數(shù)都是弧度制的。
方法 | 描述 |
---|---|
abs() | 絕對(duì)值 |
sin(), cos(), tan() | 標(biāo)準(zhǔn)三角函數(shù);參數(shù)為弧度 |
asin(), acos(), atan(), atan2() | 反三角函數(shù); 返回值為弧度 |
sinh(), cosh(), tanh() | 雙曲三角函數(shù); 返回值為弧度. |
asinh(), acosh(), atanh() | 反雙曲三角函數(shù);返回值為弧度. |
pow(), exp(), expm1(), log10(), log1p(), log2() | 指數(shù)與對(duì)數(shù)函數(shù) |
floor(), ceil() | 返回最大/最小整數(shù)小于/大于或等于參數(shù) |
min(), max() | 返回一個(gè)以逗號(hào)間隔的數(shù)字參數(shù)列表中的較小或較大值(分別地) |
random() | 返回0和1之間的隨機(jī)數(shù)。 |
round(),fround(), trunc() | 四舍五入和截?cái)嗪瘮?shù) |
sqrt(), cbrt(), hypot() | 平方根,立方根,平方參數(shù)的和的平方根 |
sign() | 數(shù)字的符號(hào), 說明數(shù)字是否為正、負(fù)、零。 |
clz32(),imul() | 在32位2進(jìn)制表示中,開頭的0的數(shù)量.返回傳入的兩個(gè)參數(shù)相乘結(jié)果的類C的32位表現(xiàn)形式 |
完整的描述和使用方法,建議查看 MDN Math
參考資料1.MDN 數(shù)字和日期
本部分內(nèi)容到這結(jié)束
Author | 王平安 |
---|---|
[email protected] | |
博 客 | www.pingan8787.com |
微 信 | pingan8787 |
每日文章推薦 | https://github.com/pingan8787... |
JS小冊(cè) | js.pingan8787.com |
歡迎關(guān)注微信公眾號(hào)【前端自習(xí)課】每天早晨,與您一起學(xué)習(xí)一篇優(yōu)秀的前端技術(shù)博文 .
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/100196.html
摘要:前置知識(shí)中的正則表達(dá)式是用來匹配字符串中指定字符組合的模式。另外需要記住正則表達(dá)式也是對(duì)象。在正則表達(dá)式創(chuàng)建時(shí)更新,不執(zhí)行。替換與正則表達(dá)式匹配的子串。查找以十六進(jìn)制數(shù)規(guī)定的字符。正則表達(dá)式拓展介紹在中有兩種情況。 本文是 重溫基礎(chǔ) 系列文章的第九篇。 今日感受:時(shí)間管理-角色管理法。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基礎(chǔ)】1.語...
摘要:本文是重溫基礎(chǔ)系列文章的第七篇。系列目錄復(fù)習(xí)資料資料整理個(gè)人整理重溫基礎(chǔ)語法和數(shù)據(jù)類型重溫基礎(chǔ)流程控制和錯(cuò)誤處理重溫基礎(chǔ)循環(huán)和迭代重溫基礎(chǔ)函數(shù)重溫基礎(chǔ)表達(dá)式和運(yùn)算符重溫基礎(chǔ)數(shù)字本章節(jié)復(fù)習(xí)的是中的時(shí)間對(duì)象,一些處理的方法。 本文是 重溫基礎(chǔ) 系列文章的第七篇。今日感受:做好自律。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基礎(chǔ)】1.語法和數(shù)據(jù)類型...
摘要:字符串拓展在我們判斷字符串是否包含另一個(gè)字符串時(shí),之前,我們只有方法,之后我們又多了三種方法返回布爾值,表示是否找到參數(shù)字符串。返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。 本文是 重溫基礎(chǔ) 系列文章的第八篇。今日感受:人在異鄉(xiāng),也不能忘記湯圓。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基礎(chǔ)】1.語法和數(shù)據(jù)類型 【重溫基礎(chǔ)】2.流程控制和...
摘要:構(gòu)造函數(shù)通常首字母大寫,用于區(qū)分普通函數(shù)。這種關(guān)系常被稱為原型鏈,它解釋了為何一個(gè)對(duì)象會(huì)擁有定義在其他對(duì)象中的屬性和方法。中所有的對(duì)象,都有一個(gè)屬性,指向?qū)嵗龑?duì)象的構(gòu)造函數(shù)原型由于是個(gè)非標(biāo)準(zhǔn)屬性,因此只有和兩個(gè)瀏覽器支持,標(biāo)準(zhǔn)方法是。 從這篇文章開始,復(fù)習(xí) MDN 中級(jí)教程 的內(nèi)容了,在初級(jí)教程中,我和大家分享了一些比較簡(jiǎn)單基礎(chǔ)的知識(shí)點(diǎn),并放在我的 【Cute-JavaScript】系...
摘要:本文是重溫基礎(chǔ)系列文章的第四篇。系列目錄復(fù)習(xí)資料資料整理個(gè)人整理重溫基礎(chǔ)語法和數(shù)據(jù)類型重溫基礎(chǔ)流程控制和錯(cuò)誤處理重溫基礎(chǔ)循環(huán)和迭代本章節(jié)復(fù)習(xí)的是中的基礎(chǔ)組件之一,函數(shù),用來復(fù)用特定執(zhí)行邏輯。箭頭函數(shù)不能使用命令,即不能用作函數(shù)。 本文是 重溫基礎(chǔ) 系列文章的第四篇。今日感受:常懷感恩之心,對(duì)人對(duì)己。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基...
閱讀 2898·2023-04-26 02:49
閱讀 3464·2021-11-25 09:43
閱讀 3448·2021-10-09 09:43
閱讀 3023·2021-09-28 09:44
閱讀 2464·2021-09-22 15:29
閱讀 4549·2021-09-14 18:02
閱讀 2797·2021-09-03 10:48
閱讀 3441·2019-08-30 12:47