ES6數(shù)值

作者:米書(shū)林
參考文章:《菜鳥(niǎo)教程》、《 ECMAScript 6 入門(mén)》(阮一峰)

新的表示法

1.新的二進(jìn)制表示法

ES6定義的以前綴0b0B來(lái)表示二進(jìn)制數(shù)值

console.log(0b11 === 3); // true
console.log(0B11 === 3); // true
2.新的八進(jìn)制表示法

ES6定義的以前綴0o0O來(lái)表示二進(jìn)制數(shù)值

console.log(0o11 === 9); // true
console.log(0O11 === 9); // true

如果要將0b和0o前綴的字符串?dāng)?shù)值轉(zhuǎn)為十進(jìn)制,要使用Number方法热某。

Number('0b111')  // 7
Number('0o10')  // 8

新值

1.常量—Number.EPSILON

表示:1 與大于 1 的最小浮點(diǎn)數(shù)之間的差月杉。它的值接近于 2.2204460492503130808472633361816E-16糖儡,或者 2-52斗躏。

0.1 + 0.2 === 0.3; // false
// 在誤差范圍內(nèi)即視為相等
equal = (Math.abs(0.1 - 0.3 + 0.2) < Number.EPSILON); // true
2.最大/最小安全整數(shù)

安全整數(shù)表示在 JavaScript 中能夠精確表示的整數(shù)柱告,安全整數(shù)的范圍在 2 的 -53 次方到 2 的 53 次方之間(不包括兩個(gè)端點(diǎn))层释,超過(guò)這個(gè)范圍的整數(shù)無(wú)法精確表示婆瓜。

最大安全整數(shù)
安全整數(shù)范圍的上限,即 2 的 53 次方減 1 贡羔。

Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // true
Number.MAX_SAFE_INTEGER === Number.MAX_SAFE_INTEGER + 1;     // false
Number.MAX_SAFE_INTEGER - 1 === Number.MAX_SAFE_INTEGER - 2; // false

最小安全整數(shù)
安全整數(shù)范圍的下限廉白,即 2 的 53 次方減 1 的負(fù)數(shù)。

Number.MIN_SAFE_INTEGER + 1 === Number.MIN_SAFE_INTEGER + 2; // false
Number.MIN_SAFE_INTEGER === Number.MIN_SAFE_INTEGER - 1;     // false
Number.MIN_SAFE_INTEGER - 1 === Number.MIN_SAFE_INTEGER - 2; // true

Number的新方法

1.Number.isFinite()

用于檢查一個(gè)數(shù)值是否為有限的( finite )乖寒,即不是 Infinity

console.log( Number.isFinite(1));   // true
console.log( Number.isFinite(0.1)); // true
 
// NaN 不是有限的
console.log( Number.isFinite(NaN)); // false
 
console.log( Number.isFinite(Infinity));  // false
console.log( Number.isFinite(-Infinity)); // false
 
// Number.isFinate 沒(méi)有隱式的 Number() 類(lèi)型轉(zhuǎn)換猴蹂,所有非數(shù)值都返回 false
console.log( Number.isFinite('foo')); // false
console.log( Number.isFinite('15'));  // false
console.log( Number.isFinite(true));  // false
2.Number.isNaN()

用于檢查一個(gè)值是否為 NaN

console.log(Number.isNaN(NaN));      // true
console.log(Number.isNaN('true'/0)); // true
 
// 在全局的 isNaN() 中,以下皆返回 true楣嘁,因?yàn)樵谂袛嗲皶?huì)將非數(shù)值向數(shù)值轉(zhuǎn)換
// 而 Number.isNaN() 不存在隱式的 Number() 類(lèi)型轉(zhuǎn)換磅轻,非 NaN 全部返回 false
Number.isNaN("NaN");      // false
Number.isNaN(undefined);  // false
Number.isNaN({});         // false
Number.isNaN("true");     // false
3.Number.isInteger()

用于判斷給定的參數(shù)是否為整數(shù)。

Number.isInteger(value)
Number.isInteger(0); // true
// JavaScript 內(nèi)部逐虚,整數(shù)和浮點(diǎn)數(shù)采用的是同樣的儲(chǔ)存方法,因此 1 與 1.0 被視為相同的值
Number.isInteger(1);   // true
Number.isInteger(1.0); // true
 
Number.isInteger(1.1);     // false
Number.isInteger(Math.PI); // false
 
// NaN 和正負(fù) Infinity 不是整數(shù)
Number.isInteger(NaN);       // 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
 
// 數(shù)值的精度超過(guò) 53 個(gè)二進(jìn)制位時(shí)聋溜,由于第 54 位及后面的位被丟棄,會(huì)產(chǎn)生誤判
Number.isInteger(1.0000000000000001) // true
 
// 一個(gè)數(shù)值的絕對(duì)值小于 Number.MIN_VALUE(5E-324)叭爱,即小于 JavaScript 能夠分辨
// 的最小值撮躁,會(huì)被自動(dòng)轉(zhuǎn)為 0,也會(huì)產(chǎn)生誤判
Number.isInteger(5E-324); // false
Number.isInteger(5E-325); // true
4.Number.isSafeInteger()

用于判斷數(shù)值是否在安全范圍內(nèi)买雾。

Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1); // false
Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1); // false

從全局移植到Number的方法

1.Number.parseInt()

用于將給定字符串轉(zhuǎn)化為指定進(jìn)制的整數(shù)把曼。

// 不指定進(jìn)制時(shí)默認(rèn)為 10 進(jìn)制
Number.parseInt('12.34'); // 12
Number.parseInt(12.34);   // 12
 
// 指定進(jìn)制
Number.parseInt('0011',2); // 3
 
// 與全局的 parseInt() 函數(shù)是同一個(gè)函數(shù)
Number.parseInt === parseInt; // true
2.Number.parseFloat()

用于把一個(gè)字符串解析成浮點(diǎn)數(shù)杨帽。

Number.parseFloat('123.45')    // 123.45
Number.parseFloat('123.45abc') // 123.45
 
// 無(wú)法被解析成浮點(diǎn)數(shù),則返回 NaN
Number.parseFloat('abc') // NaN
 
// 與全局的 parseFloat() 方法是同一個(gè)方法
Number.parseFloat === parseFloat // true

Math對(duì)象的擴(kuò)展

ES6 在 Math 對(duì)象上新增了 17 個(gè)數(shù)學(xué)相關(guān)的靜態(tài)方法嗤军,這些方法只能在 Math 中調(diào)用注盈。

屬性 作用 用法 是否進(jìn)行類(lèi)型轉(zhuǎn)換
Math.cbrt 計(jì)算立方根 Math.cbrt(1);
Math.imul 計(jì)算兩個(gè)32 位帶符號(hào)整數(shù)形式相乘的結(jié)果,返回的也是一個(gè) 32 位的帶符號(hào)整數(shù)型雳。 Math.imul(1, 2);
Math.hypot 用于計(jì)算所有參數(shù)的平方和的平方根当凡。 Math.hypot(1, 2, '3');
Math.clz32 用于返回?cái)?shù)字的32 位無(wú)符號(hào)整數(shù)形式的前導(dǎo)0的個(gè)數(shù)。 Math.clz32(0);
Math.trunc 用于返回?cái)?shù)字的整數(shù)部分纠俭。 Math.trunc(12.3)
Math.fround 用于獲取數(shù)字的32位單精度浮點(diǎn)數(shù)形式沿量。 Math.fround(1.234)
Math.sign 判斷數(shù)字的符號(hào)(正、負(fù)冤荆、0)朴则。 Math.sign(1);
Math.expm1() 用于計(jì)算 e 的 x 次方減 1 的結(jié)果相當(dāng)于 Math.exp(x) - 1 Math.expm1(1);
Math.log1p(x) 用于計(jì)算1 + x 的自然對(duì)數(shù),即 Math.log(1 + x) 钓简。 Math.log1p(1);
Math.log10(x) 用于計(jì)算以 10 為底的 x 的對(duì)數(shù)乌妒。 Math.log10(1);
Math.log2() 用于計(jì)算 2 為底的 x 的對(duì)數(shù)。 Math.log2(1);
Math.sinh(x) 用于計(jì)算雙曲正弦 Math.sinh(x)
Math.cosh(x) 用于計(jì)算雙曲余弦 Math.cosh(x)
Math.tanh(x) 用于計(jì)算雙曲正切 Math.tanh(x)
Math.asinh(x) 用于計(jì)算反雙曲正弦 Math.asinh(x)
Math.acosh(x) 用于計(jì)算反雙曲余弦 Math.acosh(x)
Math.atanh(x) 用于計(jì)算反雙曲正切 Math.atanh(x)
** 用于計(jì)算第一個(gè)數(shù)的第二個(gè)數(shù)次方 1 ** 2;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末外邓,一起剝皮案震驚了整個(gè)濱河市撤蚊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌损话,老刑警劉巖侦啸,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異丧枪,居然都是意外死亡光涂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)拧烦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)忘闻,“玉大人,你說(shuō)我怎么就攤上這事恋博∑爰眩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵债沮,是天一觀的道長(zhǎng)炼吴。 經(jīng)常有香客問(wèn)我,道長(zhǎng)秦士,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任永高,我火速辦了婚禮隧土,結(jié)果婚禮上提针,老公的妹妹穿的比我還像新娘。我一直安慰自己曹傀,他們只是感情好辐脖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著皆愉,像睡著了一般嗜价。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上幕庐,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天久锥,我揣著相機(jī)與錄音,去河邊找鬼异剥。 笑死瑟由,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冤寿。 我是一名探鬼主播歹苦,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼督怜!你這毒婦竟也來(lái)了殴瘦?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤号杠,失蹤者是張志新(化名)和其女友劉穎蚪腋,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體究流,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辣吃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芬探。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片神得。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖偷仿,靈堂內(nèi)的尸體忽然破棺而出哩簿,到底是詐尸還是另有隱情,我是刑警寧澤酝静,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布节榜,位于F島的核電站,受9級(jí)特大地震影響别智,放射性物質(zhì)發(fā)生泄漏宗苍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望讳窟。 院中可真熱鬧让歼,春花似錦、人聲如沸丽啡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)补箍。三九已至改执,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坑雅,已是汗流浹背辈挂。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留霞丧,地道東北人呢岗。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蛹尝,于是被迫代替她去往敵國(guó)和親后豫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. 二進(jìn)制和八進(jìn)制表示法 ES6 提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法突那,分別用前綴0b(或0B)和0o(或0O)...
    焦邁奇閱讀 348評(píng)論 0 0
  • 二進(jìn)制和八進(jìn)制表示法 ES6提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法挫酿,分別用前綴0b(或0B)和0o(或0O)表示。 從...
    陳老板_閱讀 489評(píng)論 0 1
  • 二進(jìn)制和八進(jìn)制表示法 ES6提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法愕难,分別用前綴0b(或0B)和0o(或0O)表示早龟。 如...
    勿念及時(shí)雨閱讀 174評(píng)論 0 1
  • 此文包含數(shù)值的擴(kuò)展、函數(shù)的擴(kuò)展猫缭,總結(jié)了一些我認(rèn)為有可能會(huì)用到的葱弟,而去除了一些稍稍復(fù)雜一時(shí)難以去學(xué)習(xí)理解且目前不想去...
    六個(gè)周閱讀 544評(píng)論 0 7
  • 二進(jìn)制和八進(jìn)制二進(jìn)制以 0b(0B)開(kāi)頭八進(jìn)制以0o(0O)開(kāi)頭 轉(zhuǎn)換成十進(jìn)制 檢查數(shù)值是否為有限或者為空 解析整...
    _by_w_z閱讀 653評(píng)論 0 1