? ? ? ?ES6對(duì)數(shù)值的擴(kuò)展盅安,說是擴(kuò)展唤锉,但是更像是對(duì)ES5中的數(shù)值的一個(gè)方法的添加和補(bǔ)充,其變化遠(yuǎn)沒有字符串的擴(kuò)展變化大别瞭。首先說一下窿祥,ES6中的數(shù)值表現(xiàn)形式的改變,0b(0B)去表示后接的數(shù)字是二進(jìn)制,0o(0O)去表現(xiàn)后接的數(shù)值是八進(jìn)制,而將這種形式轉(zhuǎn)換成十進(jìn)制采用Number(‘obj’)方法蝙寨,還多了個(gè)好玩的運(yùn)算符 ** ?==》Math.pow賊6晒衩。
? ? ? ?ES6對(duì)Number對(duì)象上的方法的擴(kuò)展,Number.isFinite(num)判斷是否存在極限籽慢,你可以根據(jù)英文infinite這個(gè)無窮判斷它返回的是個(gè)啥浸遗,如果num不是無窮的數(shù)值就返回true否則是false(當(dāng)然NaN也是false);Nimber.isNaN(num)檢查一個(gè)值是不是NaN猫胁,值得需要注意的是num必須是數(shù)字或NaN;Number.isInterger(obj)檢測(cè)一個(gè)數(shù)值是不是整數(shù)(不管是整數(shù)還是浮點(diǎn)數(shù));Number.EPSILON這算是給ES6的number中新增的一個(gè)數(shù)值flag箱亿,這是一個(gè)屬于number的極小的值來表示一個(gè)可以接受的誤差范圍;Number.MAX_SAFE_INTERGER===Math.pow(2,53)-1,Number.MIN_SAFE_INTERGER == 1- Math.pow(2,53),這兩個(gè)數(shù)值呢代表這es中數(shù)值的安全范圍,超出這兩個(gè)范圍就會(huì)產(chǎn)生溢出等問題造成數(shù)值不準(zhǔn)確弃秆,而針對(duì)這兩個(gè)數(shù)值之間非范圍還搞出個(gè)新方法Number.isSafeInterger(num)表示這個(gè)數(shù)值是否在安全范圍届惋,但是這個(gè)方法有時(shí)候無法驗(yàn)證出來是否在安全范圍只能算是個(gè)大概的驗(yàn)證,可以采用安全范圍的值進(jìn)行比較菠赚;parseInt和parseFloat這兩個(gè)方法也轉(zhuǎn)移到Number對(duì)象上了脑豹,這兩個(gè)方法都是原來es5上面的用于將字符串轉(zhuǎn)化成數(shù)值的方法。
? ? ? ?ES6對(duì)Math上的方法的擴(kuò)展衡查,Math.trunc(num)去掉num的小數(shù)點(diǎn)之后的部分瘩欺,并返回num的小數(shù)點(diǎn)之前的部分,但是如果無法對(duì)num做操作或處理不了就會(huì)返回NaN拌牲;Math.sign(num)返回num是否是正負(fù)數(shù)俱饿,num為正==》+1,參數(shù)為負(fù)數(shù)==》-1塌忽,參數(shù)為0==》0拍埠,參數(shù)為-0==》-0,其他的就是返回NaN土居;Math .cbrt(num)返回num的開立方的值枣购;Math.clz32(num)返回num的32位數(shù)前面多少個(gè)0,什么意思是就是現(xiàn)將num轉(zhuǎn)化成二進(jìn)制擦耀,如果它轉(zhuǎn)化2進(jìn)制之后不夠32位就補(bǔ)0棉圈,類似于padStart,然后告訴你前面補(bǔ)了多少個(gè)0眷蜓;Math.imul(num1,num2)將num1和num2轉(zhuǎn)換成32位帶符號(hào)進(jìn)行乘法計(jì)算并返回32為帶符號(hào)的數(shù)值迄损,正常情況下計(jì)算沒問題,但是如果超過安全范圍就算就懵逼了账磺,計(jì)算就失去精度了返回的數(shù)據(jù)就跟num1*num2不一樣了芹敌;Math.fround(num)返回一個(gè)數(shù)的單精度浮點(diǎn)數(shù)形式即返回一個(gè)最接近這個(gè)浮點(diǎn)數(shù)的單精度形式浮點(diǎn)數(shù)痊远;Math.hypot(num1,num2)返回num1的平方+num2的平方的和的平方根(終于有一個(gè)簡(jiǎn)化的現(xiàn)成的方法);Math.signbit(num)返回num的符號(hào)位是否設(shè)置了即存在-號(hào)就是真理就是對(duì)的(不過這個(gè)方法好像還沒實(shí)現(xiàn))氏捞。
? ? ? 還有一些比較生澀碧聪,平時(shí)可能用不到的方法:Math.expm1(num) ==>Math.pow(e,num) - 1,Math.log1p(x)==>Math.log(1+x);Math.log10(num)返回以10為底的num的對(duì)數(shù),Math.log2(num)道理同上液茎,這些都遵循數(shù)學(xué)上的定律(忘了是高數(shù)還是高中數(shù)學(xué)了)逞姿,Math.sinh(x),Math.cosh(x),Math.tanh(x),Math.asinh(x),Math.acosh(x),Math.atanh(x)。
? ? ? ? ?剩下的就是一些什么提案之類的東西捆等,就是搞出個(gè)新的整型數(shù)據(jù)inter后綴跟n做標(biāo)志滞造,還不能跟num做計(jì)算,合著應(yīng)該是要分家的意思栋烤。