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