强制类型转换
1.将其他的数据类型转换为为String
方式一:调用被转换类型的toString()方法
该方法不会改变原变量,它会将转换的结果返回。
注意:null和undefined两个值没有toString()方法
var a=123;//int类型
b = a.toString();//或者a=a.toString();就完成转换了
a=true;//Boolean类型
a=a.toString();
a=null;//Null类型
a=a.toString();//报错
a=undefined;//Undefined类型
a=a.toString();//报错
方式二:调用String函数,并将被转换的数据作为参数。
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,不会调用toString()方法,会直接把它们变成字符串
a=123;//int类型
a=String(a);
a=true;//Boolean类型
a=String(a);
a=null;//Null类型
a=String(a);
a=undefined;//Undefined类型
a=String(a);
2.将其他的数据类型转换为Number
方式一:使用Number()函数
字符串转数字,如果是纯数字字符串,直接转换为对应数字
如果字符串中有非数字内容,则转换为NaN(有局限)
如果字符串是一个空串或者是一个全是空格的字符,则转换为0
布尔转数字规则固定:true转成1,false转为0
Null类型转数字:变成0
Undefined类型转数字:变成NaN
//字符串转Number
var a="123";
a=Number(a);//结果为123
a="abc";
a=Number(a);//结果为NaN
a=" ";
a=Number(a);//结果为0
//Boolean 转Number
a=true;
a=Number(a);//结果为1
a=false;
a=Number(a);//结果为0
//null值转数字
a=null;
a=Number(a);//结果为0
//undefined转数字
a=undefined;
a=Number(a);//结果为NaN
方式二:专门用来对付上面的局限,只用于String型,对于非String会自动转换为String再做处理
函数parseInt()可以将一个字符串中的有效的整数内容取出来,然后转换为Number整数
函数parseFloat()转换为Number浮点数
a="123px";
//调用parseInt()函数将它转换为Number
a=parseInt(a);//结果为123
a="123px123"
a=parseInt(a);//结果仍为123
a="a123px"
a=parseInt(a);//结果为NaN
a="123.456px"
a=parseInt(a);//结果为123
//parseFloat可以取出浮点数
a="123.456px"
a=parseFloat(a);//结果为123.456
//非String类型
a=true;
a=parseInt(a);//自动转为字符串"true",然后按照上述规则输出NaN
补:不同进制的数
a=0x10;//一个16进制的10
console.log(a);//输出自动以十进制输出,结果为16
a=070;//一个八进制数70
//但是像"070"字符串处理起来就比较麻烦,不同浏览器处理不同
a="070";
a=parseInt(a);//有些浏览器会转为70,有些会当成八进制输出56
a=parseInt(a,10);//再加一个进制参数即可
a=0b10;//一个二进制,并不是所有浏览器都支持!
3.将其他的数据类型转换为Boolean
调用Boolean()函数来转换
数字转Boolean:除了0都是转为true
字符串转Boolean:除了空串,其余都是true
null值转换为false
undefined转为false
对象会转换为true
Comments NOTHING