JavaScript Math和Number對象
1. Math 對象1.1 介紹 Math 對象,是數學對象,提供對資料的數學計算,如:擷取絕對值、向上取整等。無建構函式,無法被初始化,只提供靜態屬性和方法。 1.2 建構函式 無 :Math 對象無建構函式,無法被初始化,只提供靜態屬性和方法。 1.3 靜態屬性 1.3.1 Math.E :常量e。返回自然對數的底數:2.718281828459045 1.3.2 Math.PI :常量π。返回圓周率的值 :3.141592653589793 1.4 靜態方法 1.4.1 Math.sin(value) :正弦函數1.4.2 Math.cos(value) :餘弦函數1.4.3 Math.tan(value) :正切函數1.4.4 Math.asin(value) :反正弦函數1.4.5 Math.acos(value) :反餘弦函數1.4.6 Math.atan(value) :反正切函數 1.4.7 Math.abs(value) :返回絕對值參數: ①value {Number | NumberStr} :數字或者純數位字串。 傳回值: {Number} 返回參數的絕對值數字。若參數不為數字,返回NaN。 樣本: h.abs('123'); // => 123 :純數字字串Math.abs('-123'); // => 123Math.abs(123); // => 123Math.abs(-123); // => 123Math.abs('123a'); // => NaN :非純數字字串 1.4.8 Math.ceil(value) : 對一個數向上取整,並不是四捨五入參數: ①value {Number | NumberStr} :數字或者純數位字串。 傳回值: {Number} 返回取整後的值。若參數不為數字,返回NaN。 樣本: Math.ceil(2.7); // => 3Math.ceil(2.3); // => 3 :2.3 向上取整返回 3Math.ceil(-2.7); // => -2Math.ceil(-2.3); // => -2Math.ceil('2.7'); // => 3 :純數字字串Math.ceil('2.7a'); // => NaN :非純數字字串 1.4.9 Math.floor(value) :對一個數向下取整,並不是四捨五入參數: ①value {Number | NumberStr} :數字或者純數位字串。 傳回值: {Number} 返回取整後的值。若參數不為數字,返回NaN。 樣本: Math.floor(2.7); // => 2Math.floor(2.3); // => 2Math.floor(-2.7); // => -3 :-2.7 向下取整返回 -3Math.floor(-2.3); // => -3Math.floor('2.7'); // => 2 :純數字字串Math.floor('2.7a'); // => NaN :非純數字字串 1.4.10 Math.max(value1,value2...valueN) :返回參數中最大的值參數: ①value1,value2.....valueN {Number | NumberStr} :數字或者純數位字串。 傳回值: {Number} 返回最大值。若一個參數不為數字,返回NaN。 樣本: Math.max(1, 2, 3, 4, 5); // => 5Math.max(1, 2, 3, 4, '5' ); // => 5Math.max(1, 2, 3, 4, 'a'); // => NaN 1.4.11 Math.min(value1,value2...valueN) :返回參數中最小的值參數: ①value1,value2.....valueN {Number | NumberStr} :數字或者純數位字串。 傳回值: {Number} 返回最大值。若一個參數不為數字,返回NaN。 樣本: Math.min(1, 2, 3, 4, 5); // => 1Math.min('1', 2, 3, 4, 5); // => 1Math.min(1, 2, 3, 4, 'a'); // => NaN 1.4.12 Math.pow(x,y) :返回x的y次方參數: ①x {Number | NumberStr} :數字或者純數位字串。 ②y {Number | NumberStr} :數字或者純數位字串。 傳回值: {Number} 返回x的y次方。若一個參數不為數字,返回NaN。 樣本: Math.pow(2, 3); // => 8 :2的3次方Math.pow(3, 2); // => 9 :3的2次方Math.pow('4', 2); // => 16 :4的2次方Math.pow('2a', 2); // => NaN 1.4.13 Math.random() :返回一個偽隨機數,大於0,小於1.0參數:無 傳回值: {Number} 返回一個偽隨機數,大於0,小於1.0 樣本: Math.random(); // => 0.8982374747283757Math.random(); // => 0.39617531932890415Math.random(); // => 0.35413061641156673Math.random(); // => 0.054441051790490746 1.4.14 Math.round(value) : 四捨五入後取整參數: ①value {Number | NumberStr} :數字或者純數位字串。 傳回值: {Integer} 返回參數四捨五入後的整數。若參數不為數字,返回NaN。 樣本: Math.round(2.5); // => 3Math.round(2.4); // => 2Math.round(-2.6); // => -3Math.round(-2.5); // => -2 :-2.5四捨五入為 -2Math.round(-2.4); // => -2Math.round('2.7'); // => 3 :純數字字串Math.round('2.7a'); // => NaN :非純數字字串 1.4.15 Math.sqrt(value) :返回參數的平方根參數: ①value {Number | NumberStr} :數字或者純數位字串 傳回值: {Number} 返回參數的平方根 樣本: console.log( Math.sqrt(9) ); // => 3console.log( Math.sqrt(16) ); // => 4console.log( Math.sqrt('25') ); // => 5console.log( Math.sqrt('a') ); // => NaN 2. Number 對象2.1 介紹 Number 對象,是數字對象,包含js中的整數、浮點數等等。 2.2 定義 var a = 1;var b = 1.1;2.3 靜態屬性 2.3.1 Number.MAX_VALUE :表示JS中最大的數字,約為 1.79e+308 2.3.2 Number.MIN_VALUE :表示JS中最小的數字,約為 5e-324 2.3.3 Number.NaN :返回NaN,表示非數字值,與任意其他數字不等,也包括NaN本身。應使用Number.isNaN() 來進行判斷。 2.3.4 Number.NEGATIVE_INFINITY :返回 -Infinity ,表示負無窮。 2.3.5 Number.POSITIVE_INFINITY :返回 Infinity ,表示正無窮。進行計算的值大於Number.MAX_VALUE就返回 Infinity 。 2.4 靜態方法 2.4.1 Number.isInteger(value) :判斷參數是否為整數 參數: ①value {Number} :數字 傳回值: {Boolean} 返回參數是否為整數 。純整數的字串也返回false。 樣本: Number.isInteger(1); // => trueNumber.isInteger(1.1); // => falseNumber.isInteger('1'); // => false :純整數的字串也返回falseNumber.isInteger('1.1'); // => falseNumber.isInteger('a'); // => false :非字串返回false 2.4.2 Number.isNaN(value) :判斷參數是否為NaN參數: ①value {Object} :任意類型 傳回值: {Boolean} 返回參數是否為NaN 。 樣本: Number.isNaN(NaN); // => trueNumber.isNaN('NaN'); // => false :'NaN'字串,並不為NaNNumber.isNaN(1); // => falseNumber.isNaN('1'); // => false 2.4.3 Number.parseFloat(value) :把參數轉換為浮點數參數: ①value {Number | NumberStr} :數字或者純數位字串 傳回值: {Integer | Float} 返回整數或浮點數數值 樣本: Number.parseFloat(1); // => 1 :整數還是返回整數Number.parseFloat(1.1); // => 1.1Number.parseFloat('1aaa'); // => 1 :字串前面為數位,只返回數字Number.parseFloat('1.1aaa'); // => 1.1Number.parseFloat('a1'); // => NaN :非數字開頭,返回NaNNumber.parseFloat('a'); // => NaN 2.4.4 Number.parseInt(value) :把參數轉換為整數參數: ①value {Number | NumberStr} :數字或者純數位字串 傳回值: {Integer} 返回整數數值 樣本: Number.parseInt(1); // => 1Number.parseInt(1.1); // => 1 :浮點數返回整數Number.parseInt('1aaa'); // => 1 :字串前面為數位,只返回數字Number.parseInt('1.1aaa'); // => 1Number.parseInt('a1'); // => NaN :非數字開頭,返回NaNNumber.parseInt('a'); // => NaN 2.5 執行個體方法 2.5.1 toExponential(value) :將一個數字轉為指數類型,參數表示小數點後的位元參數: ①value {Number} :表示小數點後的位元 傳回值: {String} 返迴轉換後的指數類型字串 樣本: (123456789).toExponential(2); // => 1.23e+8 :小數點2位(123456789).toExponential(5); // => 1.23457e+8 :小數點5位(123456789).toExponential(10); // => 1.2345678900e+8 :小數點10位,不足位元用0補位 2.5.2 toFixed(value) :將一個數字轉換為指定小數位元的字串。不傳入參數,就是沒小數位。傳回值為四捨五入參數: ①value {Number} :表示小數點後的位元 傳回值: {String} 返迴轉換後的字串;不夠小數位以0填充;傳回值為四捨五入後的值 樣本: console.log((1).toFixed(2)); // => 1.00console.log((1.2).toFixed(2)); // => 1.20 :不足位元,以0補位console.log((1.277).toFixed(2)); // => 1.28 :進行了四捨五入 2.5.3 toString() :使用指定的進位,將一個數字轉換為字串。不傳入參數,預設為十進位。參數: ①value {Number} :表示進位數,取值範圍:2到36 傳回值: {String} 轉換後進位的字串 樣本: (10).toString(); // => 10 :預設為十進位(10).toString(2); // => 1010 :二進位(10).toString(10); // => 10 :十進位(10).toString(16); // => a :十六進位 2.6 應用情境 2.6.1 浮點數的加減乘除異常說明:Js中的2個浮點數進行加減乘除運算,會返回異常的數值,如:0.2+0.7,返回0.899999999999。可以使用toFixed()方法,指定小數位。 樣本: console.log(0.2 + 0.7); // => 0.8999999999999999console.log(0.7 - 0.5); // => 0.19999999999999996console.log(3.03 * 10); // => 30.299999999999997 // 使用toFixed()方法console.log( (0.2 + 0.7).toFixed(2) ); // => 0.90console.log( (0.7 - 0.5).toFixed(2) ); // => 0.20 console.log( (3.03 * 10).toFixed(2) ); // => 30.30 2.6.2 減法運算說明:Js中進行減法運算時,會先把前後的值轉換為數值再進行運算。若轉換失敗,返回NaN。 樣本: console.log('1' - 0); // => 1 :純數字字串減去0,可以快速轉換為Nubmer對象console.log( ('1' - 0).toFixed(2) ); // => 1.00 :快速轉換為Nubmer對象後調用執行個體方法console.log('1' - 'a'); // => NaN :一方無法轉換為Nubmer對象