JavaScript数据类型转换小记

2018-07-08  本文已影响0人  不讨喜的大雄

JavaScript里的数据类型是可以有办法相互转换的,我们可以用以下方法分别将其他类型转换为字符串、布尔值以及数字。

1. 如何将其他类型转化为字符串

1.1. x.toString()

x.toString()

用这种方法数字和布尔值回返回字符串,对象返回 "[object Object]",而 null 和 undefined 会报错显示无法转换类型

1.2. String(x)

更好的方法是直接用 String() 这个全局变量

String(x)

这种方法可以将任何数据类型转化为字符串而不报错

1.3. x + ''

老司机有更好的方法

x + ''

这种方法利用 + 会让与字符串相加的运算子转变为字符串的特点

加法运算符是在运行时决定,到底是执行相加,还是执行连接。也就是说,运算子的不同,导致了不同的语法行为,这种现象称为“重载”(overload)

值得一提的是,只有加分运算符有这个特点,其他运算符会把运算子均转变为数值后运算。

2. 任意类型转为布尔

2.1. Boolean(x)

与字符串一样,布尔也有相应的全局变量函数 Boolean() 将其他类型转化为布尔值

Boolean(x)

其中要注意的是空字符串是 false 而空格是 true,事实上,只有以下五个值转换结果是 false,它们在JS里称为 falsy(加上 false 和 "" 就是七个)

转换结果为false的值

2.2. !!x

另一种更快的方法是用 !!x

!!x

3. 任意类型转数字

3.1. Number(x)

Number(x)

3.2. parseInt(x) MDN

parseInt(x) 主要用来将字符串等转换为整数,它可以设定转换的进制,一般推荐不转换成其他进制时,也写上parseInt(x,10)表示转换成十进制,避免歧义

parseInt(x)

当 parseInt(x) 遇到不能转换的类型即停止转换

3.3. parseFloat(x) MDN

主要用来将字符串等转换为浮点数

3.4. x - 0

x - 0

这个方法其实在 1.3 提到了,除加法运算符会有‘重载’现象外,其他运算符不会,那么当一个类型减去0当然会返回其对应的数值了。

3.5. + x

+ x

注意这种方法其实和 x - 0 原理相似,其并不是取绝对值


本文主要用于个人学习使用。

上一篇 下一篇

猜你喜欢

热点阅读