- 强制类型转换
- 指将一个数据类型强制转换为其他的数据类型
- 类型转换主要指,将其他的数据类型,转换为
String Number Boolean
一、 将其他的数据类型转换为String
* 方式一:
* - 调用被转换数据类型的toString()方法
* - 该方法不会影响到原变量,它会将转换的结果返回
* - 但是注意:null和undefined这两个值没有toString()方法,
* 如果调用他们的方法,会报错
*
* 方式二:
* - 调用String()函数,并将被转换的数据作为参数传递给函数
* - 使用String()函数做强制类型转换时,
* 对于Number和Boolean实际上就是调用的toString()方法
* 但是对于null和undefined,就不会调用toString()方法
* 它会将 null 直接转换为 "null"
* 将 undefined 直接转换为 "undefined"
二、将其他的数据类型转换为Number
转换方式一:
* 使用Number()函数
* - 字符串 --> 数字
* 1.如果是纯数字的字符串,则直接将其转换为数字
* 2.如果字符串中有非数字的内容,则转换为NaN
* 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
* - 布尔 --> 数字
* true 转成 1
* false 转成 0
*
* - null --> 数字 0
*
* - undefined --> 数字 NaN
*
* 转换方式二:
* - 这种方式专门用来对付字符串
* - parseInt() 把一个字符串转换为一个整数
* - parseFloat() 把一个字符串转换为一个浮点数
*/
三、将其他的数据类型转换为Boolean
- 1.利用Boolean对象进行转换。
* - 使用Boolean()函数
* - 数字 ---> 布尔
* - 除了0和NaN,其余的都是true
*
* - 字符串 ---> 布尔
* - 除了空串,其余的都是true
*
* - null和undefined都会转换为false
*
* - 对象也会转换为true
var num123 = 123;
var str = 'abc';
var o = {name:'test'};
var num0 = 0;
num123 = Boolean(num123); //true
num0 = Boolean(num0); //false
str = Boolean(str); //true
o = Boolean(o); //true
- 2.利用两个’!‘运算符,第一个’!‘将值转换成布尔值并取其值的非值,第二个’!'将其布尔值还原,类似于“负负得正”的道理。
var num123 = 123;
var str = 'abc';
var o = {name:'test'};
var num0 = 0;
num123 = !!(num123); //true
num0 = !!(num0); //false
str = !!(str); //true
o = !!(o); //true
- 一些需要记住的点
任意的javascript的值都可以转换成布尔值。下面这些值会被转换成false
undefined,
null,
0,
-0,
NaN,
"" //空字符串
需要注意的是’0’这个仅仅包含0的字符串会转成true!