1. 程式人生 > >ES6 之 數值的擴充套件

ES6 之 數值的擴充套件

二進位制和八進位制的表示法

  • 二進位制和八進位制的新寫法:字首0b(或0B)和0o(或 0O)標示

  • ES5嚴格模式下,八進位制不允許使用字首0表示
    ES6進一步明確使用字首0o表示

    // 非嚴格模式
    (function(){
      console.log(0o11 === 011);
    })() // true

    // 嚴格模式
    (function(){
      'use strict';
      console.log(0o11 === 011);
    })() // Uncaught SyntaxError: Octal literals are not allowed in strict mode
  • 0b和0o字首的字串數值轉十進位制,要使用Number方法
    Number('0b111');//7
    Number('0o10'); //8

Number.isFinite(),Number.isNaN()

  • Number.isFinite()用來檢查一個數值是否為有限的(finite),即不是Infinity
    console.log(Number.isFinite(15));       //true
    console.log(Number.isFinite(0.8));;     //true
    console.log(Number.isFinite(NaN
));; //false console.log(Number.isFinite(Infinity));;//false console.log(Number.isFinite(-Infinity));;//false console.log(Number.isFinite('false'));; //false console.log(Number.isFinite('15')); //false console.log(Number.isFinite(true)); //false
  • Number.isNaN()用來檢查一個值是否為NaN。
    console.log(Number.isNaN(NaN)); //true
    console.log(Number.isNaN(15));  //false
    console.log(Number.isNaN('15'));//false
    console.log(Number.isNaN(true));//false
    console.log(Number.isNaN(9 / NaN));//true
    console.log(Number.isNaN('true' / 0));//true
    console.log(Number.isNaN('true' / 'true'));//true

    isFinite(25) // true
    isFinite("25") // true
    Number.isFinite(25) // true
    Number.isFinite("25") // false

    isNaN(NaN) // true
    isNaN("NaN") // true
    Number.isNaN(NaN) // true
    Number.isNaN("NaN") // false
    Number.isNaN(1) // false    

ps:以上兩個Number新方法針對傳統全域性的isFinite()和isNaN()的區別為,
傳統方法先呼叫Number()將非數值轉為數值,再進行判斷
新方法只對數值有效,對於非數值的一律為false

Number.parseInt(),Number.parseFloat()

    // ES5的寫法
    parseInt('12.34') // 12
    parseFloat('123.45#') // 123.45

    // ES6的寫法
    Number.parseInt('12.34') // 12
    Number.parseFloat('123.45#') // 123.45

    // 這樣做的目的,是逐步減少全域性性方法,使得語言逐步模組化。
    Number.parseInt === parseInt // true
    Number.parseFloat === parseFloat // true    

Number.isInteger()

  • Number.isInteger()用來判斷一個數值是否為整數。
    Number.isInteger(25) // true
    Number.isInteger(25.1) // false

    # JavaScript 內部,整數和浮點數採用的是同樣的儲存方法,所以 2525.0 被視為同一個值。
    Number.isInteger(25) // true
    Number.isInteger(25.0) // true

    # 如果引數不是數值,Number.isInteger返回falseNumber.isInteger() // false
    Number.isInteger(null) // false
    Number.isInteger('15') // false
    Number.isInteger(true) // false

如果對資料精度的要求較高,不建議使用Number.isInteger()判斷一個數值是否為整數
5E-325由於值太小,會被自動轉為0,因此返回true

相關推薦

ES6 數值擴充套件

二進位制和八進位制的表示法 二進位制和八進位制的新寫法:字首0b(或0B)和0o(或 0O)標示 ES5嚴格模式下,八進位制不允許使用字首0表示 ES6進一步明確使用字首0o表示

ES6數值型別(number)

新特性:Number.isNaN函式 傳統的isNaN函式會把非數值的引數轉化成數值再進行判斷,而Number. isNaN只對數值型別有效,非數值型別的引數一律返回false。當返回false的時候,不一定就是一個數值,有可能是一個非數值型別的引

ES6數值的擴展

多少 asc 誤差 let parseint 邊界值 fin bsp script 1、二進制和八進制表示法   分別前綴----二進制:0b(0B) 八進制:0o(0O) 註:要把0b和0o前綴的字符串轉為十進制數值,要用Number方法

ES6學習數值擴展

sin isf integer 後綴 isnan 範圍 int 數值 平方根 二進制和八進制表示法(二進制用前綴0b(或0B)表示,八進制用前綴0o(或0O)表示) Number(‘0b111‘) // 7 Number(‘0o10‘) // 8 Number.is

web前端es6物件的擴充套件

1.屬性的簡潔表示法 2.屬性名錶達式 表示式作為物件的屬性名 3.方法的 name 屬性 例如:函式的name 屬性,返回函式名。 4.Object.is() ES 比較兩個值是否相等,只有兩個運算子,相等運算子,相等運算子(==) 和嚴格相等運算子(

ES6 物件的擴充套件

屬性的簡潔表示法 let book = '234'; let good = '432'; let obj01 = { book, good } console.log(obj01); 方法名的name屬性 .....  

ES6字串的擴充套件

作者: kim 來源: 自創 已經有一段時間沒更新關於ES6的知識點了,主要還是因為時間有點緊,小編現在即沉迷於工作,也在堅持運動,最最最最重要的還是少了點寫作的動力。但是不管怎麼樣,每週至少還是會更新一篇,內容不限。今天接著講ES6中對字串的擴充套件知識點

es6擴充套件運算子 三個點(...)

es6之擴充套件運算子 三個點(…) 物件的擴充套件運算子 理解物件的擴充套件運算子其實很簡單,只要記住一句話就可以: 物件中的擴充套件運算子(...)用於取出引數物件中的所有可遍歷屬性,拷貝到當前物件之中 let bar = { a: 1, b: 2 }

ES6 函式的擴充套件

函式引數的預設值 function log(x, y) { y = y || 'world' console.log(x + ' ' + y); } log('hello') // hello world log('hello','China')

ES6擴充套件物件的功能性

目錄 一、物件類別 二、物件字面量的語法擴充套件 2.1、屬性初始值的簡寫 2.2、物件方法的簡寫語法 2.3、可計算屬性名 三、新增方法 3.1、Object.is()方法 3.2、Object.assign()方法 四、重複的物件字面量屬性 五、自有屬性列

ES6陣列的擴充套件ES6對於陣列的新增方法)

擴充套件運算子(...) 擴充套件運算子(spread)是三個點(...),他如同rest引數的逆運算,將一個數組轉為逗號分隔的引數序列 console.log(...[1, 2, 3]) //1 2 3 console.log(0, ...[1, 2, 3], 4)

ES6物件字面量擴充套件語法(Enhanced Object Literals)

物件字面量擴充套件語法(Enhanced Object Literals)   目錄: 函式類屬性的省略語法   用法:{ method() {…} } const obj = { //Before foo: funct

ECMAScript6(ES6)標準函式擴充套件特性箭頭函式、Rest引數及展開操作符

ES6擴充套件了很多語法糖語法 其中對於函式我們又可以使用一種叫做“箭頭函式”的寫法 同時引入了Rest引數 利用“…”可以獲取多餘引數 這樣就我們就不要使用arguments物件了 下面我來詳細地談一談 函式預設引數 ES6沒有出現之前 面

5. es6函式的擴充套件

1.1函式引數的預設值 es6之前,不能直接為函式引數提供預設值,只能採用變通的方法 //es5寫法 function log(x,y){ if(typeof y === 'undefined'){ y = 'world';

ES6 數值擴充套件

1.Number.isFinite和Number.isNaN Number.isFinite來判斷一個數是不是有盡的 console.log(Number.isFinite(15));//true

es6數值擴充套件(四)

二進位制:0b; 八進位制:0o; isFinite:判斷是不是有盡的數值。 isNaN:判斷是否是數值。 isInteger:判斷是否是整數。(接受的引數必須是數值,‘25’返回false)。 MA

學習es6(變量的解構賦值)

返回 blog 成了 所在 asc 對象 expected 正弦 peer 數組的解構賦值 ES6允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構。 以前,為變量賦值,只能直接指定值。 let a = 1; let b = 2; let c = 3;

es6Generator

object 每一個 undefined style es6 cti 另一個 world done 1.Generator函數其實是一個封裝了多個內部狀態的狀態機,執行它會返回一個遍歷器對象,然後可以依次遍歷Generator中的每一個狀態,也就是分段執行,yield是暫停

ES6 let const

完全 變量 凍結 obj 結構 數據結構 代碼 但是 全局 1 let 聲明的變量只能自己讀取不能和var聲明的混淆 2 只要有let聲明的代碼塊裏,在聲明的變量前調用就會報錯 3 同一個變量不能聲明2次 const : 1 作用域類似let 2 聲明的常量不可改

ES6class

tor 逗號 之間 ima 註意 type 屬性 clas method ES5中通常通過構造函數和原型的組合形式來創建對象。在ES6中引入class作為對象模板, Class定義語法 class point{ constructor(x,y){