萌新一枚,有误之处,望纠正
只是针对,基本数据类型之间的类型转换
一、类型转换成String型
方法一:调用toString()方法
该方法不会影响原变量,而是将转换结果返回(强制类型转换)
var a=123; //Number型
var b=true; //Boolean型
console.log(a.toString());
console.log(b.toString());
但是Null和Undefined没有toString()方法,控制台会报错
控制台显示
方法二:调用String()函数
将待转换变量作为参数(强制类型转换)
var a=123; //Number型
var b=true; //Boolean型
var c=null; //Null型
var d=undefined; //Undefined型
console.log(String(a));
console.log(String(b));
console.log(String(c));
console.log(String(d));
控制台显示
方法三:利用运算符+
与字符串拼接返回结果为String型,可以利用与空串拼接(隐式转换)
var a=123; //Number型
var b=true; //Boolean型
var c=null; //Null型
var d=undefined; //Undefined型
console.log(a+"");
console.log(b+"");
console.log(c+"");
console.log(d+"");
控制台显示
二、类型转换成Number型
方法一:调用Number()函数
强制类型转换
var a=true; //Boolean型
var b="123"; //String型
var c="123JS";
var d=" ";
var e=null; //Null型
var f=undefined //Undefined型
console.log(Number(a));
console.log(Number(b));
console.log(Number(c));
console.log(Number(d));
console.log(Number(e));
console.log(Number(f));
String型---->Number型
1.字符串中只含有数字字符,转换为数字
2.字符串中包含非数字内容,转换成NaN
3.字符串中只包含空格,转换成0
Boolean型---->Number型
true转换成1,false转换成0
Null型---->Number型
转换成0
Undefined---->Number类型
转换成NaN
控制台显示
方法二:调用parseInt()函数,parseFloat()函数
强制类型转换,上面的方法有些许缺陷,比如字符串转换成Number型
var a=true; //Boolean型
var b="123"; //String型
var c="123JS45";
var d=" ";
var e=null; //Null型
var f=undefined //Undefined型
var g="123.45";
console.log(parseInt(a));
console.log(parseInt(b));
console.log(parseInt(c));
console.log(parseInt(d));
console.log(parseInt(e));
console.log(parseInt(f));
console.log(parseFloat(g));
专门用来转换字符串,遇到数字字符,将其转换成数字,当不匹配,停止转换
而非字符串调用此函数,会先转换成String类型,再调用此函数
但这也会带来某些问题如进制上的,向"070",某些浏览器会将其视作十进制,某些浏览器会将其视作八进制,所以可以向此函数传递第二个参数
var a=parseInt("070",10); //第二个参数指定进制
控制台显示
方法三:利用一元运算符+
效果与Number()函数结果一样,使用更方便(隐式转换)
var a=true; //Boolean型
var b="123"; //String型
var c="123JS";
var d=" ";
var e=null; //Null型
var f=undefined //Undefined型
console.log(+a);
console.log(+b);
console.log(+c);
console.log(+d);
console.log(+e);
console.log(+f);
控制台显示
三、类型转换成Boolean型
方法一:调用Boolean函数
强制类型转换
var a=123; //Number型
var b="46s"; //String型
var c=" ";
var d=null; //Null型
var e=undefined; //Undefined型
console.log(Boolean(a));
console.log(Boolean(b));
console.log(Boolean(c));
console.log(Boolean(d));
console.log(Boolean(e));
Number型,除了0和NaN,其余都转换true
String型,除了空串,其余都转换true
Null,Undefined型都转换false
控制台显示
方法二:利用运算符 !
隐式转换
var a=123; //Number型
var b="46s"; //String型
var c=" ";
var d=null; //Null型
var e=undefined; //Undefined型
console.log(!!a);
console.log(!!b);
console.log(!!c);
console.log(!!d);
console.log(!!e);
如果是非布尔值进行逻辑运算,会先转换成布尔值再进行逻辑运算,可以利用此特点
控制台显示