js数据类型转换,总结一波,加深印象。
类型转换分强制转换和隐式转换,而js属于弱类型语句,在遇到数据类型不同的情况时,会自动转换数据类型,也就是隐式的转换类型。
js基本数据类型包括:字符串、数字、布尔值、undefined、null、NaN。
而我们检测变量类型typeof需要注意的是:null的类型是object,若未定义就是undefined。
一、先说下强制转换,将一个数据类型强制转换为其他数据类型。
1.转为字符串string(),不论什么都转为字符串。
var a = "aa",
b = 1,
c = true,
d = null,
e;
console.log(String(a)); //aa
console.log(String(b)); //1
console.log(String(c)); //true
console.log(String(d)); //null
console.log(String(e)); //undefined
转为字符串tostring(),注意null和undefined是不能转换的,会报错。
console.log(a.toString()); //aa
console.log(b.toString()); //1
console.log(c.toString()); //true
console.log(d.toString()); //报错
console.log(e.toString()); //报错
2.转为数值Number()
字符 --> NaN,部分字符部分数字 —> NaN,数字 --> 数字,undefined —> NaN,
true —> 1,false —> 0,null —> 0,空字符串 —> 0 。
console.log(Number(a)); //NaN
console.log(Number(b)); //1
console.log(Number(c)); //1
console.log(Number(d)); //0
console.log(Number(e)); //NaN
转为数值parseInt()
字符 —> NaN,部分字符部分数字 —> 保留字符前的数字,数字 —> 数字,
布尔值 —> NaN,undefined —> NaN,null —> NaN。
console.log(parseInt(a)); //NaN
console.log(parseInt(b)); //1
console.log(parseInt(c)); //NaN
console.log(parseInt(d)); //NaN
console.log(parseInt(e)); //NaN
转为小数parseFloat(),与parseInt()类似,可以保留小数。
3.转为布尔值Boolean()
false:空字符串、0、false、undefined、null、NaN,仅六个为false;
true:其余皆为true。
console.log(Boolean(c)); //true
console.log(Boolean(d)); //false
另toString()、parseInt()是可以进行进制转换的。
二、隐式转换:当遇到条件判断或运算符时,需隐式转换,自动转换类型遵从String()、Number()、Boolean()。