1、什么是类型转换?
类型转换:将一种数据类型强制转换为其他数据类型。
2、将其他数据类型转换为String:
- toString()方法,该方法不会影响原变量会将转换的结果返回,null和undefined这两个类型没有toString()方法;
- String()函数,
使用该函数时,对于Number和Boolean实际调用的就是toString(),但是该函数可以直接操作null和undefined,可以将其强制转换为string类型。let a=123; let b=String(a); typeof b; // String
3、将其他数据类型转换为Number:
- 使用Number()函数,用法和String()函数一样。其中纯数字的字符串转数字时,直接转换;若字符串中有非数字的内容,则转换为NaN;若字符串为空,则转换为0;布尔转数字时,true为1,false为0;NULL转数字时,转为0;undefined转数字时,转为NaN;
let a="123"; Number(a); // 123 let b="123px"; Number(b); // 123 let c="123a123"; Number(c); // 123 let d=""; Number(d); // 0 let e=null; Number(e); // 0 let f1=undefined; Number(f1); // NaN var f2; Number(f2); // NaN let g1=true; Number(g1); // 1 let g2=false; Number(g2); // 0
- 专门将字符串转换为number的两个函数,parseInt()将字符串转换为整数,将字符串中有效的整数内容取出来转换为整数、parseFloat()将字符串转换为浮点数;
let a1="123"; parseInt(a1); // 123 parseFloat(a1); // 123 let a2="123px"; parseInt(a2); // 123 parseFloat(a2); // 123 let a3="px"; parseInt(a3); // NaN parseFloat(a3); // NaN let a4="123.123aaa"; parseInt(a4); // 123 parseFloat(a4); // 123.123
- 若对非String类型使用上述两个函数,会自动先转换为String类型再按照String类型处理。
4、将其他数据类型转换为Boolean:
- 使用Boolean()函数:数字转布尔,除了0和NaN,其余都转换为true;
- 字符串转布尔,除了空串(空串转为false),其余都转换为true;
- null和undefined转换后都会转换为false;
- 对象会转换为true,空对象也会转换为true。
在js中表示16进制,需要以0x开头;表示8进制的数,需要以0开头;表示2进制的数,需要以0b开头,但不是所有浏览器都支持,像“010"这种字符串有的浏览器会转换成十进制,有的会转换成八进制,可以在parseInt中使用第二个参数来指定进制,如parseInt(a,8)。
注:个人整理,若有错误,欢迎批评指正,期待共同进步。