JavaScript 基本數據類型轉換你瞭解嘛

前言

數據類型轉換是我們在前端開發中經常遇到的場景,一般而言,在 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// -123str+1 // '1231'+str+1 // 124let res = str - 1 //122let 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 基本數據類型轉換相關的知識總結,其中最需要註意的是隱式轉換。

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: