JS里的数据类型转换

一、转为字符串

  1. toString()方法

数值、字符串、对象、布尔;都有toString方法;这个方法唯一能做的就是返回相应的字符串;其中nullundefined没有toString()方法。

x.toString()

  1. String(x)

String()属于强制转换, null转换的结果为nullundefined转换的结果为undefined;其余的如果有toString()方法,即调用该方法,返回相应的结果。

String(x)

  1. x + ''

还有一种比较“老司机”的方法,就是任何数据类型直接 + 空字符串''就行了。如下:

x + ''

注意,如果非要将number + string,会调用number的toString方法,如下

1 + '2'    相当于
(1).toString() + '2'
// '12'

二、转为布尔

  1. Boolean()

Boolean函数可以将任意类型的值转为布尔值。
它的转换规则相对简单:除了以下五个值(5个falsy值)的转换结果为false,其他的值全部为true

  • undefined
  • null
  • -0+0
  • NaN
  • ''(空字符串)
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false

所有对象(包括空对象)的转换结果都是true,甚至连false对应的布尔对象new Boolean(false)也是true

2.!!x
还有一种比较聪明的方法就是通过!取反,这样的话两个感叹号!!就是负负得正,在一个数据类型前面加上!!就可以返回它本身的布尔值。

!true // false
!!true // true
!!1 // true
!!'' // false
!!NaN // false

三、转为数值

1.Number()

使用Number函数,可以将任意类型的值转化成数值。

Number('1') // 1
  1. parseInt() (经常有人问的)

parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数 (数学系统的基础)。能解析多少就解析多少,一旦遇到不能解析的字符串,就立马退出返回结果。

parseInt('1',10) // 1
  1. parseFloat()

parseFloat() 函数解析一个字符串参数并返回一个浮点数。

parseFloat("3.14");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14more non-digit characters");
  1. x - 0 (常用也常见)

一个比较聪明的方法,也是比较骚的方法。(既有parseInt()的功能,也有parseFloat()的功能)

'12' - 0 // 12
'1.23' - 0 // 1.23
  1. +x

通过取正(取它原本的值),来得出数值。

+ '1.23' // 1.23
+ '.1' // 0.1
+ '-1' // -1

你可能感兴趣的:(JS里的数据类型转换)