成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ECMAScript6(3):數(shù)值類型擴(kuò)展

Martin91 / 2306人閱讀

摘要:數(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)制用 0b0B 開頭, 八進(jìn)制用 0o0O 開頭:

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_INTEGERNumber.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

相關(guān)文章

  • ECMAScript6 新特性——“數(shù)值擴(kuò)展

    摘要:二進(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...

    Dean 評(píng)論0 收藏0
  • ECMAScript6 新特性——“對(duì)象的擴(kuò)展

    摘要:屬性的簡(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...

    Clect 評(píng)論0 收藏0
  • ECMAScript6(10):Symbol基本類型

    摘要:基本類型是一種解決命名沖突的工具。這樣,就有了個(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...

    lavor 評(píng)論0 收藏0
  • ECMAScript6(4):字符串類型擴(kuò)展

    字符串?dāng)U展 //ES6 u{20BB7} //

    IntMain 評(píng)論0 收藏0
  • ECMAScript6學(xué)習(xí)筆記

    摘要:筆記和和是塊作用域的,是聲明常量用的。一個(gè)對(duì)象如果要有可被循環(huán)調(diào)用的接口,就必須在的屬性上部署遍歷器生成方法原型鏈上的對(duì)象具有該方法也可。這種方式會(huì)訪問注冊(cè)表,其中存儲(chǔ)了已經(jīng)存在的一系列。這種方式與通過定義的獨(dú)立不同,注冊(cè)表中的是共享的。 ECMAScript6 筆記 let 和 const let和const是塊作用域的 ,const是聲明常量用的。 {let a = 10;} a ...

    CODING 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<