ES6數(shù)值多了哪些擴(kuò)展?

1伶氢、二進(jìn)制和八進(jìn)制表示方法
二進(jìn)制:以 0b 或 0B 表示;

console.log(Number(0b111101)); // 61
console.log(Number("0b111101")); // 61
console.log(0b111101 === 61); // true

八進(jìn)制:在ES5 嚴(yán)格模式中激况,八進(jìn)制是不允許使用0 為前綴表示的虐杯,而在ES6 中,明確使用 0o 前綴表示的灯帮。

console.log(Number(0o567)); // 375
console.log(Number("0o567")); // 375
console.log(0o567=== 375); // true

2崖技、數(shù)值Number 方法擴(kuò)展
判斷值是否為有限值:isFinite();

Number.isFinite(18); // true
Number.isFinite('18'); // false

判斷值是否為NaN:isNaN();

Number.isNaN(NaN);  // true
Number.isNaN('true' / 0);  // true
Number.isNaN(13);  // false

在ES6 中這兩個個方法與ES中的區(qū)別在于,傳統(tǒng)方法先調(diào)用Number() 將非數(shù)值轉(zhuǎn)為數(shù)值钟哥,在進(jìn)行判斷迎献,而新方法只對數(shù)值有效,對于非數(shù)值一律返回false腻贰。

ES6 將全局方法parseInt() 和 parseFloat() 移植到 Number 對象上面吁恍,行為完全不變。

Number.parseInt('12.23'); // 12
Number.parseFloat('23.44o'); // 23.44

判斷是否為整數(shù):isInteger();

Number.isInteger(12); // true
Number.isInteger(12.0); // true
Number.isInteger(12.2); // false

新增一個極小常量播演,判斷數(shù)值是否在某個誤差范圍內(nèi)冀瓦,是否精確:EPSILON,這個值為2-52写烤。

x = 0.2;
y = 0.3;
z = 0.1;
equal = (Math.abs(x - y + z) < Number.EPSILON);
console.log(equal); // true

判斷數(shù)值是否為安全整數(shù):isSafeInteger();
安全整數(shù)的范圍在:-(253 - 1)到 253 - 1 之間的整數(shù)翼闽,包含 -(253 - 1)和 253 - 1。

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

3洲炊、Math 對象的擴(kuò)展
取數(shù)值的整數(shù)部分:Math.trunc();

Math.trunc(13.37)    // 13
Math.trunc(42.84)    // 42
Math.trunc(0.123)    //  0
Math.trunc(-0.123)   // -0
Math.trunc("-1.123") // -1
Math.trunc(NaN)      // NaN
Math.trunc("foo")    // NaN
Math.trunc()         // NaN

判斷數(shù)值的類型:Math.sign();
有五種情況判斷感局, 若參數(shù)為非數(shù)值,會先轉(zhuǎn)換為數(shù)值暂衡。
(1)參數(shù)為正數(shù)询微,返回+1;
(2)參數(shù)為負(fù)數(shù)狂巢,返回-1拓提;
(3)參數(shù)為0,返回0隧膘;
(4)參數(shù)為-0代态; 返回0寺惫;
(5)參數(shù)為其他值,返回NaN蹦疑。

Math.sign(3);     //  1
Math.sign(-3);    // -1
Math.sign("-3");  // -1
Math.sign(0);     //  0
Math.sign(-0);    // -0
Math.sign(NaN);   // NaN
Math.sign("foo"); // NaN
Math.sign();      // NaN

計(jì)算數(shù)值的立方根:Math.cbrt()西雀;

Math.cbrt(NaN); // NaN
Math.cbrt(-1); // -1
Math.cbrt(-0); // -0
Math.cbrt(-Infinity); // -Infinity
Math.cbrt(0); // 0
Math.cbrt(1); // 1
Math.cbrt(Infinity); // Infinity
Math.cbrt(null); // 0
Math.cbrt(2);  // 1.2599210498948734

整數(shù)使用32位二進(jìn)制表示: Math.clz32()

Math.clz32(1)                // 31
Math.clz32(1000)             // 22 
Math.clz32()                 // 32
[NaN, Infinity, -Infinity, 0, -0, null, undefined, "foo", {}, []].filter(function (n) {
  return Math.clz32(n) !== 32
})                           // []
Math.clz32(true)             // 31
Math.clz32(3.5)              // 30

32位整數(shù)乘法:Math.imul();

Math.imul(2, 4) // 8
Math.imul(2.5, 4) // 8
Math.imul(-1, 8) // -8
Math.imul(-2, -2) // 4
Math.imul(0xffffffff, 5) //-5
Math.imul(0xfffffffe, 5) //-10

將數(shù)值轉(zhuǎn)換為單精度浮點(diǎn)值: Math.fround()

Math.fround(0);     // 0
Math.fround(1);     // 1
Math.fround(1.337); // 1.3370000123977661
Math.fround(1.5);   // 1.5
Math.fround(NaN);   // NaN

求所有參數(shù)的平方和的平方根: Math.hypot();

Math.hypot(3, 4)        // 5
Math.hypot(3, 4, 5)     // 7.0710678118654755
Math.hypot()            // 0
Math.hypot(NaN)         // NaN
Math.hypot(3, 4, "foo") // NaN, +"foo" => NaN
Math.hypot(3, 4, "5")   // 7.0710678118654755, +"5" => 5
Math.hypot(-3)          // 3, the same as Math.abs(-3)

4、對數(shù)方法
Math.expm1() 函數(shù)返回 Ex - 1, 其中 x 是該函數(shù)的參數(shù), E 是自然對數(shù)的底數(shù)歉摧;

Math.expm1(1)     // 1.7182818284590453
Math.expm1(-38)   // -1
Math.expm1("-38") // -1
Math.expm1("foo") // NaN

Math.log1p() 函數(shù)返回一個數(shù)字加1后的自然對數(shù) (底為 E), 即log(x+1).

Math.log1p(Math.E-1)  // 1
Math.log1p(0)         // 0
Math.log1p("0")       // 0
Math.log1p(-1)        // -Infinity
Math.log1p(-2)        // NaN
Math.log1p("foo")     // NaN

Math.log10() 函數(shù)返回一個數(shù)字以 10 為底的對數(shù).

Math.log10(10)   // 1
Math.log10(100)  // 2
Math.log10("100")// 2
Math.log10(1)    // 0
Math.log10(0)    // -Infinity
Math.log10(-2)   // NaN
Math.log10("foo")// NaN

Math.log2() 函數(shù)返回一個數(shù)字以 2 為底的對數(shù).

Math.log2(2)     // 1
Math.log2(1024)  // 10
Math.log2(1)     // 0
Math.log2(0)     // -Infinity
Math.log2(-2)    // NaN
Math.log2("1024")// 10
Math.log2("foo") // NaN

5艇肴、指數(shù)運(yùn)算符:**

2 ** 4 // 16
3 ** 3 // 27

與等號結(jié)合: **=

let a = 4;
a **= 4; 
console.log(a); // 256

等同于 a = aaa*a.

戳我博客

章節(jié)目錄

1、ES6中啥是塊級作用域叁温?運(yùn)用在哪些地方再悼?
2、ES6中使用解構(gòu)賦值能帶給我們什么膝但?
3冲九、ES6字符串?dāng)U展增加了哪些?
4跟束、ES6對正則做了哪些擴(kuò)展莺奸?
5、ES6數(shù)值多了哪些擴(kuò)展冀宴?
6灭贷、ES6函數(shù)擴(kuò)展(箭頭函數(shù))
7、ES6 數(shù)組給我們帶來哪些操作便利略贮?
8甚疟、ES6 對象擴(kuò)展
9、Symbol 數(shù)據(jù)類型在 ES6 中起什么作用逃延?
10览妖、Map 和 Set 兩數(shù)據(jù)結(jié)構(gòu)在ES6的作用
11、ES6 中的Proxy 和 Reflect 到底是什么鬼真友?
12黄痪、從 Promise 開始踏入異步操作之旅
13紧帕、ES6 迭代器(Iterator)和 for...of循環(huán)使用方法
14盔然、ES6 異步進(jìn)階第二步:Generator 函數(shù)
15、JavaScript 異步操作進(jìn)階第三步:async 函數(shù)
16是嗜、ES6 構(gòu)造函數(shù)語法糖:class 類

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末愈案,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鹅搪,更是在濱河造成了極大的恐慌站绪,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丽柿,死亡現(xiàn)場離奇詭異恢准,居然都是意外死亡魂挂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門馁筐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涂召,“玉大人,你說我怎么就攤上這事敏沉」” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵盟迟,是天一觀的道長秋泳。 經(jīng)常有香客問我,道長攒菠,這世上最難降的妖魔是什么迫皱? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮要尔,結(jié)果婚禮上舍杜,老公的妹妹穿的比我還像新娘。我一直安慰自己赵辕,他們只是感情好既绩,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著还惠,像睡著了一般饲握。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蚕键,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天救欧,我揣著相機(jī)與錄音,去河邊找鬼锣光。 笑死笆怠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的誊爹。 我是一名探鬼主播蹬刷,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼频丘!你這毒婦竟也來了办成?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤搂漠,失蹤者是張志新(化名)和其女友劉穎迂卢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡而克,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年靶壮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片员萍。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡亮钦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出充活,到底是詐尸還是另有隱情蜂莉,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布混卵,位于F島的核電站映穗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏幕随。R本人自食惡果不足惜蚁滋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赘淮。 院中可真熱鬧辕录,春花似錦、人聲如沸梢卸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛤高。三九已至蚣旱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戴陡,已是汗流浹背塞绿。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恤批,地道東北人异吻。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像喜庞,于是被迫代替她去往敵國和親诀浪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

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