ES6數值的擴展

本節咱們學習 ES6 中的經常使用數據類型之數值(Number)類型。ES6 中除了 JavaScript 中的六種數據類型以外,還引入了一種新的原始數據類型 Symbol,它是 JavaScript 語言的第七種數據類型:學習

  • Number (數值)
  • String(字符串)
  • Boolean(布爾值)
  • Object(對象)
  • undefined
  • null
  • Symbol

二進制和八進制表示法

ES6 中提供了二進制和八進制數值的新的寫法:code

  • 二進制的新寫法能夠使用前綴 0b 或者 0B 表示。
let a = 0b1001;
console.log(a);  // 輸出:9
  • 八進制的新寫法能夠使用前綴 0o 或者0O表示。
let b = 0o345;
console.log(b);  // 輸出:229

ES5 開始,在嚴格模式之中,八進制就再也不容許使用前綴 0 表示,ES6 進一步明確,要使用前綴0o表示。對象

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

執行代碼後,報錯信息以下所示:ip

SyntaxError: Octal literals are not allowed in strict mode.

若是要將 0b0o 前綴的字符串數值轉爲十進制,要使用 Number 方法。字符串

示例:
console.log(Number('0b110'));  // 輸出:6
console.log(Number('0o43'));   // 輸出:35

Number對象的經常使用方法

ES6Number 對象上提供了一些方法,咱們一塊兒來看一下。it

isFinite()方法

isFinite() 方法能夠用於檢查一個數值是否爲有限的。若是是則返回 true,不是則返回 falseio

示例:
console.log(Number.isFinite(1));      // true 
console.log(Number.isFinite(1000.0)); // true 
console.log(Number.isFinite('xkd'));  // false
console.log(Number.isFinite(NaN));    // false
console.log(Number.isFinite(true));   // false

上述代碼中能夠看到,只有當 isFinite 方法中的參數爲有限數值時,纔會返回 true,參數的值爲字符串或者布爾類型等都會返回 falseconsole

isNaN()方法

isNaN() 方法用來檢查一個值是不是 NaN,爲 NaN 則返回 true,不然返回 falsefunction

示例:

能夠看到,下面代碼中只有第一個 isNaN() 方法的返回結果爲 trueclass

console.log(Number.isNaN(NaN));    // true
console.log(Number.isNaN(null));   // false 
console.log(Number.isNaN('xkd'));  // false
console.log(Number.isNaN(true));   // false

parseInt()方法

parseInt() 方法用於將值轉換爲整型。若是參數不爲數值類型,則會返回 NaN

示例:
console.log(Number.parseInt(1.215));  // 1
console.log(Number.parseInt(null));   // NaN 
console.log(Number.parseInt(8.0));    // 8
console.log(Number.parseInt('xkd'));  // NaN

parseFloat()方法

parseFloat() 方法用於將值轉換爲浮點型。

示例:
console.log(Number.parseFloat(2.15));  // 2.15
console.log(Number.parseFloat(7));     // 7 
console.log(Number.parseFloat(16));    // 16
console.log(Number.parseFloat(null));       // NaN
console.log(Number.parseFloat(undefined));  // NaN
console.log(Number.parseFloat('xkd'));      // NaN

isInteger()方法

isInteger() 方法用來判斷一個值是否爲整數。須要注意的是,在 JavaScript 內部,整數和浮點數是一樣的儲存方法,例如 11.0 被視爲同一個值。

示例:

從下面代碼中能夠看出,只有當參數爲整數結果纔會返回 true,當參數不爲整數或者數值類型的值時,也會返回 false

console.log(Number.isInteger(2.15));  // false
console.log(Number.isInteger(7));     // true
console.log(Number.isInteger(16));    // true
console.log(Number.isInteger('xkd')); // false
console.log(Number.isInteger(null));  // false
console.log(Number.isInteger(true));  // false

Math對象的方法

ES6 在 Math 對象上新增了一些與數值相關的方法,這些方法所有都是靜態方法,只能在 Math 對象上調用。

trunc()方法

trunc() 方法用於去除一個數的小數,只保留整數部分,也能夠理解爲取整。

示例:
console.log(Math.trunc(1.85));  // 1
console.log(Math.trunc(-7.15)); // -7
console.log(Math.trunc(25));    // 25
console.log(Math.trunc('xkd')); // NaN
console.log(Math.trunc(true));  // 1
console.log(Math.trunc(false)); // 0

須要注意的是,當方法中參數的類型爲字符串時,會返回一個 NaN,當參數爲 true 時返回 1,爲 false 則返回 0

sign()方法

sign() 方法用來判斷一個數是正數、負數、或者 0。當參數爲負數時返回 -1,爲 0 時返回 0,爲正數時返回 1

示例:
console.log(Math.sign(-7));    // -1
console.log(Math.sign(0));     // 0
console.log(Math.sign(34));    // 1
console.log(Math.sign('xkd')); // NaN
console.log(Math.sign(true));  // 1
console.log(Math.sign(false)); // 0

cbrt()方法

cbrt() 方法用於計算一個數的立方根。

示例:
console.log(Math.cbrt(8));      // 2
console.log(Math.cbrt(27));     // 3
console.log(Math.cbrt(9));      // 2.080083823051904
console.log(Math.cbrt(0));      // 0
console.log(Math.cbrt(true));   // 1
console.log(Math.cbrt(false));  // 0
console.log(Math.cbrt('xkd'));  // NaN

clz32()方法

clz32() 方法將參數轉爲 32 位無符號整數的形式,而後返回這個 32 位值裏面有多少個前導 0

示例:
console.log(Math.clz32(1));     // 31
console.log(Math.clz32(0));     // 32
console.log(Math.clz32(14));    // 28
console.log(Math.clz32(188));   // 24
console.log(Math.clz32(true));  // 31
console.log(Math.clz32(NaN));   // 32

imul()方法

imul() 方法返回兩個數以 32 位帶符號整數形式相乘的結果,返回的也是一個 32 位的帶符號整數。

示例:
console.log(Math.imul(2, 5));   // 10
console.log(Math.imul(-1, 4));  // -4
console.log(Math.imul(-2, -9)); // 18
console.log(Math.imul(NaN));    // 0
console.log(Math.imul(true));   // 0

fround()方法

fround() 方法返回一個數的單精度浮點數形式。

示例:
console.log(Math.fround(1.125));   // 1.125
console.log(Math.fround(1000));    // 1000
console.log(Math.fround(-1));      // -1
console.log(Math.fround(1.0254));  // 1.0254000425338745

hypot()方法

hypot() 方法返回全部參數的平方和的平方根。

示例:
console.log(Math.hypot(-1));    // 1
console.log(Math.hypot(3, 5));  // 5.8309518948453
console.log(Math.hypot(NaN));   // NaN
console.log(Math.hypot('xkd')); // NaN
console.log(Math.hypot(true));  // 1
console.log(Math.hypot());      // 0
相關文章
相關標籤/搜索