一、 二進(jìn)制和八進(jìn)制表示法
????????ES6語(yǔ)法中 提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法困檩,分別用前綴0b(或0B)和0o(或0O)表示祠挫。
二、 Number.isFinite()悼沿, Number.isNaN()
? ? ? ?ES6中在Number對(duì)象上等舔,新增了?Number.isFinite(), Number.isNaN()兩個(gè)方法糟趾。
? ? ? ?(一) Number.isFinite()用來(lái)檢查一個(gè)數(shù)值是否為有限的(finite)
? ? ? ????????? ——1.Number.isFinite()對(duì)于非數(shù)字慌植,不會(huì)做隱式類(lèi)型轉(zhuǎn)換,直接返回false
????????(二)Number.isNaN()用來(lái)檢查一個(gè)值是否為NaN
????????(三)它們與傳統(tǒng)的全局方法isFinite()和isNaN()的區(qū)別在于义郑,傳統(tǒng)方法先調(diào)用Number()將非數(shù)值的值轉(zhuǎn)為數(shù)值蝶柿,再進(jìn)行判斷,而這兩個(gè)新方法只對(duì)數(shù)值有 效非驮,Number.isFinite(? )對(duì)于非數(shù)值一律返回false, Number.isNaN(? )只有對(duì)于NaN(是真的NaN交汤,或者表達(dá)式運(yùn)算之后得到的NaN)才返回true,非NaN一律返回false劫笙。
三芙扎、Number.parseInt(? ), Number.parseFloat(? )
? ??????ES6 將ES5的全局方法parseInt( )和parseFloat(? ),移植到Number對(duì)象上面邀摆,兩者的行為完全保持不變纵顾。
????????(一) Number.parseFloat(string) 方法可解析一個(gè)字符串,并返回一個(gè)浮點(diǎn)數(shù)栋盹。指定字符串中的首個(gè)字符是否是數(shù)字施逾。如果是,則對(duì)字符串進(jìn)行解析,直到到達(dá)數(shù)字的末端為止汉额,然后以數(shù)字返回該數(shù)字曹仗,而不是作為字符串。
????????(二)Number.parseInt(string,radix) 方法可解析一個(gè)字符串蠕搜,并返回一個(gè)整數(shù)怎茫。radix表示要解析的數(shù)字的基數(shù)。該值介于 2 ~ 36 之間
四妓灌、Number.isInteger(number)
????????Number.isInteger()用來(lái)判斷一個(gè)值是否為整數(shù)轨蛤。需要注意的是,在 JavaScript 內(nèi)部虫埂,整數(shù)和浮點(diǎn)數(shù)是同樣的儲(chǔ)存方法祥山,所以 32 和 32.00 被視為同一個(gè) 值。
五掉伏、安全整數(shù)和 Number.isSafeInteger()
????????JavaScript 能夠準(zhǔn)確表示的整數(shù)范圍在-2^53到2^53之間(不含兩個(gè)端點(diǎn))缝呕,ES6 引入了Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER這兩個(gè)常量,用來(lái)表示這個(gè)范圍的上下限斧散。超過(guò)這個(gè)范圍供常,JavaScript無(wú)法精確表示這個(gè)值。
ES6中新增了Number.isSafeInteger()方法鸡捐,是用來(lái)判斷一個(gè)整數(shù)是否落在這個(gè)范圍之內(nèi)栈暇。
? ??????值得注意的是:如果我們需要驗(yàn)證一個(gè)算式(一個(gè)超級(jí)大的數(shù)減去一個(gè)超級(jí)大的數(shù)得到一個(gè)很小的數(shù)的情況)的結(jié)果是不是落在安全整數(shù)之內(nèi),除了驗(yàn)證結(jié)果意外闯参,參與算式的每一個(gè)數(shù)都應(yīng)該去驗(yàn)證是否在安全整數(shù)范圍內(nèi)瞻鹏。
六、Math.sign(? )
????????Math.sign(? )方法用來(lái)判斷一個(gè)數(shù)到底是正數(shù)鹿寨、負(fù)數(shù)、還是零薪夕。對(duì)于非數(shù)值脚草,會(huì)先將其轉(zhuǎn)換為數(shù)值。
? ??????它會(huì)返回五種值原献。
????????參數(shù)為正數(shù)馏慨,返回+1;
????????參數(shù)為負(fù)數(shù)姑隅,返回-1写隶;
????????參數(shù)為 0,返回0讲仰;
????????參數(shù)為-0慕趴,返回-0;
????????其他值,返回NaN。
? ? ? ? 這里說(shuō)明一下:null冕房、空字符串' '躏啰、false通過(guò)Number對(duì)象轉(zhuǎn)換后為數(shù)字0,true通過(guò)Number對(duì)象轉(zhuǎn)換后為數(shù)字1耙册,undefined通過(guò)Number對(duì)象轉(zhuǎn)換后為NaN
七给僵、Math.cbrt( )
????????Math.cbrt( )方法用于計(jì)算一個(gè)數(shù)的立方根。
八详拙、Math.trunc()
????????(一) Math.trunc( )方法用于去除一個(gè)數(shù)的小數(shù)部分帝际,返回整數(shù)部分。
????????(二)對(duì)于非數(shù)值饶辙,Math.trunc( )內(nèi)部使用Number方法將其先轉(zhuǎn)為數(shù)值胡本。
????????(三)對(duì)于空值和無(wú)法截取整數(shù)的值,返回NaN畸悬。
九侧甫、Math 對(duì)象的擴(kuò)展
????????ES6 在 Math 對(duì)象上新增了 17 個(gè)與數(shù)學(xué)相關(guān)的方法。所有這些方法都是靜態(tài)方法蹋宦,只能在 Math 對(duì)象上調(diào)用披粟。
十、指數(shù)運(yùn)算符
? ? ? ? ES6新增 ** 為指數(shù)運(yùn)算符冷冗。注意肺孵,在 V8 引擎中,指數(shù)運(yùn)算符與Math.pow的實(shí)現(xiàn)不相同蜒什,對(duì)于特別大的運(yùn)算結(jié)果荣倾,兩者會(huì)有細(xì)微的差異(數(shù)據(jù)的最后一位有效數(shù)字會(huì)有差異)。