- 强制类型转换指将一个数据类型强制转换为其他数据类型
- 类型转换主要指将其他类型转换为String Number Boolean
将其他类型转化为String
方式一:调用被转换数据类型的toString()方法
- 调用a的toString()方法 :a.String()
- 该方法不会影响原变量,它会将转换结果返回
- 但是注意:null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错
var a=123
var b=a.String();
方式二:调用String()函数,并将被转化的数据作为参数传递给函数
- 调用a的String()函数:String(a)
- 该方法不会影响原变量,它会将转换结果返回
- 使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用toString()方法,但是对于null和undefined,就不是调用toString()方法,它会将null(字面量)直接转换为“null”(字符串),将undefined(字面量)直接转换为“undefined”(字符串)
将其他类型转化为Number
方式一:使用Number()函数
- 使用a的Number()函数:Number(a)
- 该方法不会影响原变量,它会将转换结果返回
- 字符串--->数字
- 如果是纯数字的字符串,则直接将其转换为数字
- 如果字符串中有非数字的内容,则转换为NaN
- 如果字符串是一个空串或者是一个全空格的字符串,则转换为0
- 布尔值--->数字
- true转成1
- false转成0
- .Null--->数字 0
- Undefined--->数字 NaN
方式二:parse数据类型()函数
-
这种方式专门用来转换字符串
-
调用parseInt()函数将a转换为Number:parseInt(a)
-
该方法不会影响原变量,它会将转换结果返回
-
parseInt()把一个字符串转换为一个整数,把一个字符串中有效的整数取出来,然后转为Number
-
parseFloat()把一个字符串转换为一个浮点数 ,把一个字符串中有效的小数取出来,然后转为Number
-
如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后再操作
-
可以在parseInt()或parseFloat()函数中传递第二个参数,来指定数字的进制。例如:parseInt(a,10);表示10进制
- 如果需要表示16进制的数字,则需在前面加0x;例如0x30
- 如果需要表示8进制的数字,则需在前面加0;例如030(在强制转换时,像“030”、“070”这种字符串有些浏览器会当成10进制解析)
- 如果需要表示2进制的数字,则需在前面加0b;例如0b30(但不是所有的浏览器都支持)
将其他类型转化为Boolean
方式一:使用Boolean()函数
- 调用a的Boolean()函数:Boolean(a)
- 该方法不会影响原变量,它会将转换结果返回
- 数字--->布尔值 (除了0和NaN,其余的都是true)
- 字符串--->布尔值 (除了空串,其余的都是true)
- null 和undefined--->布尔值 (false)
- 对象--->布尔值 (true)
方式二:隐式类型转换
- 为任意的数据类型做两次非运算,即可将其转换为布尔值