JavaScript 基本資料型別轉換

程式設計三昧發表於2022-01-22

資料型別轉換.001

前言

資料型別轉換是我們在前端開發中經常遇到的場景,一般而言,在 JavaScript 中型別轉換有三種情況:

  • 轉換為數字(呼叫 Number(),parseInt(),parseFloat()方法)
  • 轉換為字串(呼叫.toString()或 String()方法)
  • 轉換為布林值(呼叫 Boolean()方法)

需要注意的是:null、undefined 沒有.toString() 方法

轉換為數字

Number(string) 方法

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'
-str    // -123
str+1 // '1231'
+str+1 // 124
let res = str - 1 //122

轉換為字串

toString()

將目標物件轉換為字串。

注意:null,undefined 不能呼叫。

Number(123).toString()    //'123'
[].toString()    //''
true.toString()    //'true'

String()

String() 的作用比較強大,它可以將任何傳入的值都轉為字串。

String(123)    //'123'
String(true)    //'true'
String([])    //''
String(null)    //'null'
String(undefined)    //'undefined'
String({})    //'[object Object]'

隱式轉換

當 + 兩邊有一個是字串,另一個是其它型別時,會先把其它型別轉換為字串再進行字串拼接,返回字串:

let a = 1
a + ''    // '1'

轉換為布林值

Boolean()

Boolean() 方法會將以下值轉換為 false:

  • 0
  • “”
  • null
  • undefined
  • NaN

其餘的所有值都會被轉換為 true。

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

總結

以上就是 JavaScript 基本資料型別轉換相關的知識總結,其中最需要注意的是隱士轉換。

~

~本文完,感謝閱讀!

~

學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!

大家好,我是〖程式設計三昧〗的作者 隱逸王,我的公眾號是『程式設計三昧』,歡迎關注,希望大家多多指教!

你來,懷揣期望,我有墨香相迎! 你歸,無論得失,唯以餘韻相贈!

知識與技能並重,內力和外功兼修,理論和實踐兩手都要抓、兩手都要硬!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章