學習目標:
parseInt()、Number()這兩個函式用到最多的地方就是把一個字串轉換成資料型別,那么他們都有哪些區別?
學習內容:
parseInt()函式將給定的字串以指定的基數決議為整數,
parseInt(string,radix)
第二個引數表示使用的進制,我們一般使用10進制,也可能會有到8或者16進制,為了避免對“0”和“0x”開頭的字串決議錯誤,各種javascript編程規范都規定必須要明確給出第二個引數的值,如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運算子時,可以用來執行型別轉換,如果無法轉換為數字,就回傳NaN, 像“123a”,parseInt()回傳是123,Number()回傳是NaN,不同型別的字串使用這兩個函式的轉換區別:
// 當字串是由數字組成的時候 他們轉換的數字一樣的沒有差別
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型別再操作 4 剩下的細節參考上述案例
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/261394.html
標籤:其他
