1.含义
强制类型转换指的是将一个数据类型强制转换为其他的数据类型
类型转换主要指,将其他的数据类型,转换为 String Number Boolean即字符串,数值和布尔值
2.将其他的数据类型转换为Sting
1.方式一:
- 调用被转换数据类型的toString()方法
- 该方法不会影响到原变量,它会将转换结果返回
- 但是要注意:null和undefined这两个没有toString 调用会报错
a =true;//调用xxx的yyy()方法,就是xxx.yyy()a =a.toString();document.write(typeof a);//stringdocument.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);//stringdocument.write(a);//null
3.将其他的数据类型转换为Number
1.方式一
使用number()函数
将字符串转换成数字
1.纯数字:转换成数字
var a="123";a=Number(a);console.log(typeof a);//Numberconsole.log(a);//123
2.有非数字内容:nan
var a="123px";a = Number(a)console.log(typeof a);//numberconsole.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);//Numberconsole.log(a);//123
parseFloat()
parseFloat()和parseInt()类似,不同的是它可以获得有效的小数
var a="133.54px";a=parseFloat(a);console.log(typeof a);//Numberconsole.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;//truea=456;//truea=0;//falsea=Infinity;//truea=NaN;//falsea="true";//truea="";//falsea=null;//false a=undefined;//falsea=Boolean(a);
如果觉得《JS中的数据强制类型转换》对你有帮助,请点赞、收藏,并留下你的观点哦!