数据类型转换
JavaScript中的基本数据类型分为:
- Number
- String
- Boolean
- undefined
- null
那么下面我们进行一下对基本数据类型的转换操作。
- 基本数据类型转换为字符串
- 基本数据类型转换为数值类型
- 基本数据类型转换为布尔类型
基本数据类型转换为字符串类型
常用的方法有三种:
- 对于Number和Boolean类型来说,可以通过
变量.toString()
的方式来转换- 注意点:
变量.toString()
前面必须是变量,如果是常量将会报错- 只针对
Number
和Boolean
类型,undefined
和null
类型将会报错 变量.toString()
是对拷贝的数据进行转换,所以不会影响原有的数据
- 可以通过String(变量/常量)的方式转换为字符串
- 根据传入的数据重新生成一个新的字符串,并不是修改原有的数据
- 针对任何基本数据类型均可用
- 还可以通过
变量/常量 + ''
或者变量/常量 + ""
的形式转换为字符串- 底层本质就是调用String()函数
- 针对任何基本数据类型均可用
1 | **方式一:`变量.toString()`** |
基本数据类型转换为数值类型
常用的方法有三种:
- 通过
Number(常量/变量)
的方式来转换- 将String类型转换为数值类型
- 如果字符串都是数值,那么就正常转换
- 如果字符串是空串””/“ “,那么都会转换为0
- 如果字符串中不仅仅是数字,那么转换之后是NaN
- 将Boolean类型转换为数值类型
- true转换之后为 1
- false转换之后为 0
- 将undefied类型转换为数值类型
- 转换之后都为NaN
- 将null类型转换为数值类型
- 转换之后为 0
- 将String类型转换为数值类型
- 还可以通过数学运算符中的
+
和-
的方式转换- 底层本质上就是调用了Number函数,所以结果同上
- 还可以通过
parseInt(字符串)、parseFloat(字符串)
的方式来转换,区别于Number(常量/变量)
,可以将数值从字符串中从左至右提取出来parseInt(字符串)、parseFloat(字符串)
会将传入的数据当作字符串来处理parseInt(字符串)、parseFloat(字符串)
从左至右提取数值,一旦遇到非数值就会立即停止,停止的时候如果没有提取到数值,那么就会返回NaN- 除了String可以提取数值外,Boolean、undefined和null,都会转换为NaN
总结:
- 空字符串、falase、null转换之后都是0
- 字符串中不仅仅是数字、undefined转换之后是NaN
- 其他都正常转换
1 | **方式一:`Number(变量/常量)`** |
基本数据类型转换为布尔类型
JavaScript中如果想要将基本的数据类型转换为布尔类型,那么只需要调用Boolean(常量/变量)
常用的方法:
- String类型转换为Boolean类型
- 只有字符串中有内容就会转换为true,即使是空格
- 如果字符串中没有内容就会转换为false
- 将Number类型转换为Boolean类型
- 只有数值为0才会转换为false,其他的都会转换为true
- NaN也会转换为false
- 将undefined类型转换为Boolean类型
- undefined会转换为false
- 将null类型转换为Boolean类型
- null会转换为false
总结:
- 空字符串、0、NaN、undefined和null都会转换为false,其他的都会转换为true
1 | // String转换为Boolean类型 |
关系运算符
关系运算符注意点:
- 对于非数值类型的数据,会先转换成数值类型,在进行判断
- 对于关系运算符来说,任何数据和NaN进行比较,返回值为false
- 如果参数的都是字符串类型,那么不会转换成数值类型在进行比较,而是直接比较字符串的unicode编码
下面通过几个例子讲述关系运算符
1 | let ret = 1 > "10"; // false |
注意点:
- 企业开发中千万不要用过 == 来判断一个数据是否是NaN,如果想要判断某一个数据是否是NaN,那么可以通过isNaN来判断