ES6—數值(Number,Math對象)(複習+學習)

ES6—數值(Number,Math對象)(複習+學習)

每天一學,今天要學習ES6的關於數的擴展以及複習,然後通過看書,查閱資料,以及webAPI來搞清楚遇到的,沒見過的對象方法等等,下面為本次學習的筆記分類:

 

 

1.數值(表示)

2.Number對象

3.Math對象

4.總結

 

 

 

 

 

 

 

1.數值(表示)

1 //ES6 提供了二進位和八進位的寫法(0b ||0o),0b 為二進位,0o為八進位。
2 //ES6與ES5中,ES5不許使用前綴0表示八進位,而ES6允許
3 //如果要將二或者八進位的數轉化為十進位,可以使用Number對象
4 Number('0b111')   //7
5 Number('0o10')      //8
6 //十進位轉化為其他進位(2)等等,利用num.toString('x');
7 let a = 2;
8 console.log(a.toString(2));    //10

 

 

 

 

 

2.Number對象

 

2.1 Number.isFinite(),Number.isNaN()

 1 //(1)Number.isFinite()與 全局isFinite()方法
 2 //Number.isFinite() 為Number對象的一種方法,isFinite() 是全局方法,兩者的目的都是為了判斷一個數值是否有窮
 3  4 //用法區別:
 5 //Number.isFinite()
 6 Number.isFinite(value);
 7 //全局isFinite()方法
 8 isFinite(testValue)
 9 10 //差別:
11 Number.isFinite(value);  //中的value只能是一個數值型的值,如果是字元串的數字,就會直接返回false
12 isFinite(testValue)  //如果參數是一個字元串,可以先強轉為數值,再進行測試
13 14 isFinite("115");   //true
15 Number.isFinite("115")   //false


//(2)Number.isNaN() 與 全局isNaN()
//Number.isNaN() 方法確定傳遞的值是否為 NaN,並且檢查其類型是否為 Number,更加穩妥。
//isNaN() 只檢查一個值是否為NaN

//區別用法看一個例子
isNaN(NaN);   //true
isNaN("NaN");   //true
Number.isNaN(NaN);  //true
Number.isNaN("NaN");  //false
 

 







2.2 Number.parseInt()與Number.parseFloat()

1 //傳統的有parseInt(),parseFloat()方法,但是ES6將這兩個方法放到Number對象里了,用法不變,ES6新增了模組化的概念,這樣才做更利於模組化
2 3 //(1)Number.parseInt()  方法依據指定基數 [ 參數 radix 的值],把字元串 [ 參數 string 的值] 解析成整數。
4 //  Number.parseInt === parseInt; // true,表示兩個用法一樣
5 Number.parseInt(string[, radix]);   // string 表示一個字元串   radix 表示表示半徑(數學數值系統的基數)(了解)
6 console.log(Number.parseInt(12.25266));  //數值為非字元串的話,會調用toString方法轉化,返回一個整值
7 8 //(2)Number.parseFloat() 方法可以把一個字元串解析成浮點數
9 Number.parseFloat(string)

 

 

 

 

2.3 Number.isInteger()

 1 //用於判斷一個數是否為整數,js中整數和浮點數的存儲方法相同,因此3.0和3結果一樣 2 3 number.isInteger(15.1) //false 

 

 

2.4 Number.EPSILON

 1 //僅僅表示一個極小值常量,用於判斷誤差範圍,如果在該屬性值範圍內,則可以認為得到了正確答案 

 

 

 

  2.5 Number.isSafeInteger()  

1 //Number.isSafeInteger()方法用來判斷傳入的參數值是否是一個「安全整數」(safe integer)。
2 Number.isSafeInteger(testValue)   //參數為要測試的值  返回一個布爾值
3 Number.isSafeInteger(3);                    // true
4 Number.isSafeInteger(Math.pow(2, 53))       // false

 

 

 

 

 

3.Math對象

 

  3.1 Math.trunc()

1 //Math.trunc() 方法會將數字的小數部分去掉,只保留整數部分。
2 Math.trunc(value)  //value 可以取數字,返回值
3 //demo
4 Math.trunc(13.37)    // 13
5 Math.trunc(42.84)    // 42

 

 

 

 

3.2 Math.sign()

 1 //判斷數值的種類(非數值會轉化為數值)
 2 Math.sign(x);
 3  4 //demo
 5 Math.sign(3);     //  1    整數返回 1
 6 Math.sign(-3);    // -1     複數返回-1
 7 Math.sign("-3");  // -1     
 8 Math.sign(0);     //  0     0 返回 0
 9 Math.sign(-0);    // -0     -0 返回-0
10 Math.sign(NaN);   // NaN    非數值返回NaN

 

 

 

 

3.3 Math.cbrt()

 1 //Math.cbrt() Math.cbrt() 函數返回任意數字的立方根.非數值也會先轉化為數字再操作 2 Math.cbrt(x) 3 Math.cbrt(4) //1.5874010519681996 

 

 

 

3.4 Math.clz32() 與 Math.imul()

1 //把這兩個放一起是因為這兩個都是32進位操作的,了解一下就行了,具體自行查閱
2 // Math.clz32() 函數返回一個數字在轉換成 32 無符號整形數字的二進位形式後, 開頭的 0 的個數, 比如 1000000 轉換成 32 位無符號整形數字的二進位形式後是 00000000000011110100001001000000, 開頭的 0 的個數是 12 個, 則 Math.clz32(1000000) 返回 12
3 //Math.imul() 方法返回兩個數以32位帶符號形式相乘的結果

 

 

 

 

3.5 Math.fround()

1 //Math.fround() 方法返回一個數的單精度浮點數形式
2 Math.fround()   //0
3 Math.fround(1.337)    // 1.3370000123977661

 

 

 

 

3.6 Math.hypot()

1 //Math.hypot() 函數返回所有參數的平方和的平方根
2 Math.hypot([value1[,value2, ...]])  //value1, value2, ...任意個數字,將所提供的參數求平方和後開平方根。如果有參數不能轉換為數字,則返回 NaN。。
3 Math.hypot(3, 4);        // 5

 

 

 

 

 

 

 

 

4.總結

 

本次大概學習了數值,對象方法,這些內容,我感覺有些常用的需要記憶一下,有些只需要了解一下,還有對數,雙曲線,新增了一個指數運算**,等等內容可以自行查閱文檔。繼續努力!!

 

 

 

 

 

 

Tags: