1. 程式人生 > 其它 >js資料型別轉換

js資料型別轉換

在JavaScript中型別轉換有三種情況:

轉換為數字(呼叫Number(),parseInt(),parseFloat()方法)

轉換為字串(呼叫.toString()或String()方法)

轉換為布林值(呼叫Boolean()方法) 還有隱式轉換 注意:null、undefined沒有.toString方法

轉換為數字
Number():可以把任意值轉換成數字,如果要轉換的字串中有不是數字的值,則會返回NaN
​
Number('1') // 1
Number(true) // 1
Number('123s') // NaN
Number({}) //NaN
​
​
parseInt(string,radix):解析一個字串並返回指定基數的十進位制整數,radix是2
-36之間的整數,表示被解析字串的基數。 parseInt('2') //2 parseInt('2',10) // 2 parseInt('2',2) // NaN parseInt('a123') // NaN 如果第一個字元不是數字或者符號就返回NaN parseInt('123a') // 123 ​ ​ parseFloat(string):解析一個引數並返回一個浮點數 ​ parseFloat('123a') //123 parseFloat('123a.01') //123 parseFloat('123.01') //123.01 parseFloat('123.01.1') //123.01 ​ 隱式轉換 let str
= '123' let res = str - 1 //122 str+1 // '1231' +str+1 // 124 ​ 轉換為字串 .toString() ⚠️注意:null,undefined不能呼叫 ​ Number(123).toString() //'123' [].toString() //'' true.toString() //'true' ​ ​ String() 都能轉 String(123) //'123' String(true) //'true' String([]) //'' String(null) //'null' String(undefined) //'undefined' String({})
//'[object Object]' ​ ​ 隱式轉換:當+兩邊有一個是字串,另一個是其它型別時,會先把其它型別轉換為字串再進行字串拼接,返回字串 ​ let a = 1 a+'' // '1' 轉換為布林值 0, ''(空字串), null, undefined, NaN會轉成false,其它都是true Boolean() Boolean('') //false Boolean(0) //false Boolean(1) //true Boolean(null) //false Boolean(undefined) //false Boolean(NaN) //false Boolean({}) //true Boolean([]) //true ​ 條件語句 ​ let a if(a) { //... //這裡a為undefined,會轉為false,所以該條件語句內部不會執行 } ​ 隱式轉換 !! ​ let str = '111' console.log(!!str) // true {}和[]的valueOf和toString的返回結果? valueOf:返回指定物件的原始值 ​ 物件 返回值 Array 返回陣列物件本身。 Boolean 布林值。 Date 儲存的時間是從 1970 年 1 月 1 日午夜開始計的毫秒數 UTC。 Function 函式本身。 Number 數字值。 Object 物件本身。這是預設情況。 String 字串值。 Math 和 Error 物件沒有 valueOf 方法。 ​ toString:返回一個表示物件的字串。預設情況下,toString() 方法被每個 Object 物件繼承。如果此方法在自定義物件中未被覆蓋, toString() 返回 "[object type]",其中 type 是物件的型別。 ​ ({}).valueOf() //{} ({}).toString() //'[object Object]' [].valueOf() //[] [].toString() //''