强制类型转换

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