App下載

JS中parseInt()和Number()區(qū)別

猿友 2021-02-20 18:08:26 瀏覽數 (5897)
反饋

學習目標:

parseInt()、Number()這兩個函數用到最多的地方就是把一個字符串轉換成數據類型,那么他們都有哪些區(qū)別?

學習內容:

parseInt()函數將給定的字符串以指定的基數解析為整數。parseInt(string,radix)第二個參數表示使用的進制,我們一般使用10進制,也可能會有到8或者16進制。為了避免對“0”和“0x”開頭的字符串解析錯誤,各種 javascript 編程規(guī)范都規(guī)定必須要明確給出第二個參數的值,如 parseInt(“123”,10).

parseInt('16', 8)  = 14
parseInt('10', 8)  = 8

parseInt('16', 10)  = 16
parseInt('10', 10)  = 10

parseInt('16', 16)  = 22
parseInt('10', 16)  = 16

parseInt 從頭解析 string 為整數,在遇到不能解析的字符時就返回已經解析的整數部分,如果第一個字符就不能解析,就直接返回NaN。

Number() 在不用 new 操作符時,可以用來執(zhí)行類型轉換。如果無法轉換為數字,就返回 NaN。 像“123a”,parseInt() 返回是123,Number() 返回是 NaN,不同類型的字符串使用這兩個函數的轉換區(qū)別:

// 當字符串是由數字組成的時候 他們轉換的數字一樣的沒有差別  
let numStr = '123'
console.log(parseInt(numStr))   //123
console.log(Number(numStr))		//123

// 當字符串是由字母組成的時候 
let numStr = 'abc'
console.log(parseInt(numStr))   //NaN
console.log(Number(numStr))		//NaN

// 當字符串是由數字和字母組成的時候 
let numStr = '123a'
console.log(parseInt(numStr))   //123
console.log(Number(numStr))		//NaN

// 當字符串是由0和數字
let numStr = '0123'
console.log(parseInt(numStr))   //123
console.log(Number(numStr))		//123

// **當字符串包含小數點**
let numStr = '123.456'
console.log(parseInt(numStr))		//123
console.log(Number(numStr))			//123.456

// **當字符串為null時**
let numStr = null
console.log(parseInt(numStr))		//NaN
console.log(Number(numStr))			//0

// **當字符串為''(空)時**
let numStr = ''
console.log(parseInt(numStr))		//NaN
console.log(Number(numStr))			//0

學習總結:

1、當字符串是由數字組成的時候 他們轉換的數字一樣的沒有差別;如果字符串不含數字全是字母,這兩個方法也都只是返回 NaN 結果;當字符串是由0和數字組成時,都是解析除0外的全部數字;
2、 當字符串是由數字和字母組成的時候 ①字母在開頭,這兩個方法也都只是返回 NaN 結果②字母不在開頭 Number 方法返回NaN,pareseInt 方法返回字母之前的數據
3 、parseInt 對于非 String 類型的值要先轉換為 String 類型再操作


0 人點贊