JavaScript中的转化的方法介绍

60 阅读3分钟

即使JavaScript是一种松散类型的语言,你也可能需要将一个值从一个类型转换为另一个类型。

在JavaScript中,我们有那些原始的类型。

  • Number
  • String
  • Boolean
  • Symbol

和对象类型。

  • Object

(另外还有nullundefined ,但从/到它们的转换没有意义)

例如,你可能想转换。

  • 一个数字到一个字符串
  • 字符串转为数字
  • 字符串转为布尔值
  • 布尔值转换为字符串

...等等。

下面是你可以用来从一种类型转换到另一种类型的技术。我涵盖了最常见的情况。

转换到字符串

一般来说,从任何东西转换为字符串通常是在任何值上调用toString() 方法,JavaScript将创建一个与该类型相对应的字符串值。或者你可以把任何值传递给String() 全局函数。

从数字到字符串的转换

使用String全局函数,或者Number类型的toString() 方法。

String(10) //"10"
(10).toString() //"10"

从布尔型到字符串的转换

使用字符串全局函数,或布尔类型toString()

String(true) //"true"
true.toString() //"true"
String(false) //"false"
false.toString() //"false"

从日期到字符串的转换

使用字符串全局函数,或者日期类型toString() 方法。

String(new Date('2019-01-22'))
//"Tue Jan 22 2019 01:00:00 GMT+0100 (Central European Standard Time)"

(new Date('2019-01-22')).toString()
//"Tue Jan 22 2019 01:00:00 GMT+0100 (Central European Standard Time)"

字符串的特殊情况

String(null) //"null"
String(undefined) //"undefined"
String(NaN) //"NaN"

转换为数字

从字符串到数字的转换

我们可以通过使用Number() 全局函数来做到这一点,它有点像一个构造函数。我们可以传给它一个字符串,JavaScript会想办法把它转换成一个数字。

Number("1") //1
Number("0") //0

字符串在转换为数字之前会被修剪。

传递一个空字符串时,默认为0。

而要与小数一起工作,你可以使用一个点。

如果一个字符串包含无效的字符,它将产生一个NaN

这就是转换数字的基本原理,但我在如何在JavaScript中把字符串转换为数字的过程中给出了更多的细节。还有其他一些从字符串生成数字的方法,包括parseInt()parseFloat()Math.floor() 、单数+ 操作符。

从布尔值到数字的转换

就像我们对字符串所做的那样,将一个布尔值传递给Number() ,将返回0或1。

Number(true) //1
Number(false) //0

从日期到数字的转换

如果你把一个Date对象传给Number() ,它将返回日期时间戳,这是你能得到的最好的日期到数字的转换。

数字的特殊情况

Number(null) //0
Number(undefined) //NaN
Number(NaN) //NaN

转换为布尔值

任何值都可以转换为布尔值,将其传递给Boolean()

所有的值都会解析为true ,除了。

Boolean(false) //false
Boolean(0) //false
Boolean(NaN) //false
Boolean("") //false
Boolean(null) //false
Boolean(undefined) //false