摘要:數(shù)值類型擴(kuò)展類型新增了如下特性支持二進(jìn)制和八進(jìn)制二進(jìn)制用或開頭八進(jìn)制用或開頭新加方法判斷一個(gè)數(shù)字是否有限方法判斷一個(gè)變量是否。值得注意的是如果將非數(shù)值傳入這兩個(gè)函數(shù)一律返回。對(duì)于無法轉(zhuǎn)換為數(shù)值的參數(shù)返回符合函數(shù)。
數(shù)值類型擴(kuò)展
Number 類型新增了如下特性:
支持二進(jìn)制和八進(jìn)制
二進(jìn)制用 0b 或 0B 開頭, 八進(jìn)制用 0o 或 0O 開頭:
Number("0b1101"); //13 Number("0o107"); //71
新加 Number.isFinite() 方法判斷一個(gè)數(shù)字是否有限, Number.isNaN() 方法判斷一個(gè)變量是否 NaN。值得注意的是, 如果將非數(shù)值傳入這兩個(gè)函數(shù), 一律返回 false。
將原有的 window.parseInt() 和 window.parseFloat() 移植到了 Number.parseInt() 和 Number.parseFloat(), 行為保持不變。
Number.parseInt === window.parseInt; //true Number.parseFloat === window.parseFloat; //true
引入 Number.isInteger() 判斷一個(gè)數(shù)字是不是整數(shù), 注意到, 3.0 也是個(gè)整數(shù)。如果將非數(shù)值傳入函數(shù), 一律返回 false。
Number.EPSILON, 一個(gè)極小的量, 用來解決浮點(diǎn)數(shù)計(jì)算的誤差
if(0.1 + 0.2 === 0.3){ console.log("true"); } else { console.log("false") } //以上if語句將輸出 false if(0.1 + 0.2 - 0.3 < Number.EPSILON){ console.log("true"); } else { console.log("false") } //以上if語句將輸出 true //其實(shí)我們可以封裝一下: Object.defineProperty(Number, "isEqual", { value: function isEqual(a, b){ return Math.abs(a - b) < Number.EPSILON; }, writable: true, configurable: true, enumerable: false }); Number.isEqual(0.1 + 0.2, 0.3); //true
Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER 和 Number.isSafeInteger()
js 所能表示的整數(shù)介于$-2^{53}$~$2^{53}$之間, 超過的數(shù)就會(huì)有誤差, 所以:
Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1; //true Number.MIN_SAFE_INTEGER === -Math.pow(2, 53) + 1; //true
我們使用Number.isSafeInteger()判斷一個(gè)數(shù)是否在這個(gè)范圍內(nèi), 返回 Boolean 值。如果傳入非數(shù)字或非整數(shù), 一律返回 false。這里同樣注意:3.0是個(gè)整數(shù)。
Math對(duì)象擴(kuò)展
對(duì)于數(shù)學(xué)運(yùn)算, 這里不再一一展開了, 以下列舉了 ES6 新增的17個(gè)數(shù)學(xué)函數(shù)
Math.trunc(); 直接舍去一個(gè)數(shù)的小數(shù)部分。對(duì)于無法轉(zhuǎn)換為數(shù)值的參數(shù), 返回 NaN
Math.sign(); 符合函數(shù)。傳入正數(shù)返回1, 負(fù)數(shù)返回-1, 0返回0, -0返回-0, 其他值返回 NaN
Math.cbrt(); 返回一個(gè)數(shù)的立方根。對(duì)于無法轉(zhuǎn)換為數(shù)值的參數(shù), 返回 NaN
Math.clz32(); 返回一個(gè)數(shù)的32位無符號(hào)二進(jìn)制的前導(dǎo)零個(gè)數(shù)。對(duì)于小數(shù), 只考慮器整數(shù)部分, 對(duì)于無法轉(zhuǎn)換為數(shù)值的參數(shù), 返回 32
Math.imul(); 返回2個(gè)數(shù)有符號(hào)32位乘積的十進(jìn)制, 相當(dāng)于(a*b)|0, 通常和乘法計(jì)算一致, 但可防止結(jié)果溢出
Math.fround(); 返回一個(gè)數(shù)的單精度浮點(diǎn)形式。對(duì)于無法轉(zhuǎn)換為數(shù)值的參數(shù), 返回 NaN
Math.hypot(); 返回所以函數(shù)平方和的平方根(歐氏距離)。只要有1個(gè)無法轉(zhuǎn)換為數(shù)值的參數(shù), 返回 NaN
Math.expm1(); 即$e^x-1$
Math.log1p(); 即$ln(x+1)$, 參數(shù)小于0或不能轉(zhuǎn)換為大于零的數(shù), 返回 NaN
Math.log10(); 即$log_{10}{x}$, 參數(shù)小于0或不能轉(zhuǎn)換為大于零的數(shù), 返回 NaN
Math.log2(); 即$log_{2}{x}$, 參數(shù)小于0或不能轉(zhuǎn)換為大于零的數(shù), 返回 NaN
Math.sinh(); 返回參數(shù)的雙曲正弦值
Math.cosh(); 返回參數(shù)的雙曲余弦值
Math.tanh(); 返回參數(shù)的雙曲正切值
Math.asinh(); 返回參數(shù)的反雙曲正弦值
Math.acosh(); 返回參數(shù)的反雙曲余弦值
Math.atanh(); 返回參數(shù)的反雙曲正切值
指數(shù)運(yùn)算符
ES7 提出指數(shù)運(yùn)算符(**),已可以實(shí)現(xiàn)
2 ** 3 = 8; //相當(dāng)于 Math.pow(2, 3) //支持賦值運(yùn)算 let a = 2; a **= 3; console.log(a); //8
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/97424.html
摘要:二進(jìn)制和八進(jìn)制表示法提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫法,分別用前綴或和或表示。用來檢查是否為有窮以及是否為這兩個(gè)新方法只對(duì)數(shù)值有效,非數(shù)值一律返回。引入了和這兩個(gè)常量,用來表示這個(gè)范圍的上下限。因?yàn)橛芯认拗?,超過的次方的值無法精確表示。 1 二進(jìn)制和八進(jìn)制表示法 ES6提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫法,分別用前綴0b(或0B)和0o(或0O)表示。 console.log(0b10...
摘要:屬性的簡(jiǎn)潔表示法允許直接寫入變量和函數(shù)作為對(duì)象的屬性和方法。,中有返回一個(gè)數(shù)組,成員是參數(shù)對(duì)象自身的不含繼承的所有可遍歷屬性的鍵名。對(duì)象的擴(kuò)展運(yùn)算符目前,有一個(gè)提案,將解構(gòu)賦值擴(kuò)展運(yùn)算符引入對(duì)象。 1 屬性的簡(jiǎn)潔表示法 ES6允許直接寫入變量和函數(shù)作為對(duì)象的屬性和方法。 寫入屬性 var name = value; var obj = { name }; console.log...
摘要:基本類型是一種解決命名沖突的工具。這樣,就有了個(gè)基本類型和個(gè)復(fù)雜類型使用需要注意以下幾點(diǎn)和一樣不具有構(gòu)造函數(shù),不能用調(diào)用。判斷對(duì)象是否某個(gè)構(gòu)造函數(shù)的實(shí)例,運(yùn)算符會(huì)調(diào)用它是一個(gè)數(shù)組對(duì)象屬性。即,當(dāng)存在時(shí),以此為構(gòu)造函數(shù)構(gòu)建對(duì)象。 Symbol基本類型 Symbol 是一種解決命名沖突的工具。試想我們以前定義一個(gè)對(duì)象方法的時(shí)候總是要檢查是否已存在同名變量: if(String && Str...
摘要:筆記和和是塊作用域的,是聲明常量用的。一個(gè)對(duì)象如果要有可被循環(huán)調(diào)用的接口,就必須在的屬性上部署遍歷器生成方法原型鏈上的對(duì)象具有該方法也可。這種方式會(huì)訪問注冊(cè)表,其中存儲(chǔ)了已經(jīng)存在的一系列。這種方式與通過定義的獨(dú)立不同,注冊(cè)表中的是共享的。 ECMAScript6 筆記 let 和 const let和const是塊作用域的 ,const是聲明常量用的。 {let a = 10;} a ...
閱讀 1911·2021-11-24 09:39
閱讀 2575·2021-10-14 09:43
閱讀 3333·2021-10-08 10:10
閱讀 2355·2021-09-22 15:54
閱讀 2354·2019-08-29 17:20
閱讀 1585·2019-08-28 18:14
閱讀 2385·2019-08-26 13:28
閱讀 1128·2019-08-26 12:16