1.含义
强制类型转换指的是将一个数据类型强制转换为其他的数据类型
类型转换主要指,将其他的数据类型,转换为 String Number Boolean即字符串,数值和布尔值
2.将其他的数据类型转换为Sting
1.方式一:
- 调用被转换数据类型的toString()方法
- 该方法不会影响到原变量,它会将转换结果返回
- 但是要注意:null和undefined这两个没有toString 调用会报错
a =true;
//调用xxx的yyy()方法,就是xxx.yyy()
a =a.toString();
document.write(typeof a);//string
document.write(a);//true
2.方式二:
- 调用String()函数,并将参数传递给函数
- 使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调研toString()方法
它会将null 直接转换为 "null"
将undefined 直接转换为 "undefined"
a=null;
a=String(a);
document.write(typeof a);//string
document.write(a);//null
3.将其他的数据类型转换为Number
1.方式一
使用number()函数
将字符串转换成数字
1.纯数字:转换成数字
var a="123";
a=Number(a);
console.log(typeof a);//Number
console.log(a);//123
2.有非数字内容:nan
var a="123px";
a = Number(a)
console.log(typeof a);//number
console.log(a);//NaN
3.空窜/全是空格:null
4.true/false:1/0
5.null --> 数字0
6.undefined --> 数字nan
2.方式二
使用parseInt()和parseFloat()函数(专门用于应付字符串)
parseInt()
var a="123px";
a=parseInt(a);
console.log(typeof a);//Number
console.log(a);//123
parseFloat()
parseFloat()和parseInt()类似,不同的是它可以获得有效的小数
var a="133.54px";
a=parseFloat(a);
console.log(typeof a);//Number
console.log(a);//133.54
对非String使用parseInt()或parseFloat()
它会先将其转换为String然后再操作
3.其他的进制
在JS中,如果需要表示16进制的数字,则需要以0x开头
如果需要表示8进制的数字,则需要以0开头
如果需要表示2进制的数字,则需要以0b开头,但是不是所有浏览器都兼容
//16进制
a=0x10;
a=0xff;
//8进制
a=070;
//2进制
a=0b10;
//像"070"这种字符串,有些浏览器会当成8进制解析吗,有些会当成10进制解析
a="070";
//可以在pareeInt()中传递一个第二个参数,来指定数字的进制
a=parseInt(a,8);
console.log(a);
4.将其他的数据类型转换为Boolean
使用boolean()函数
将数字转换为布尔
除了0和NaN,其余的都是true
将字符串转换为布尔
除了空串,其余都是true
null和undefined都会转换为false
var a=123;//true
a=456;//true
a=0;//false
a=Infinity;//true
a=NaN;//false
a="true";//true
a="";//false
a=null;//false
a=undefined;//false
a=Boolean(a);