JS里的数据类型转换
JavaScript一共有7中数据类型:简单数据类型:number,string,boolean,underfine,null,以及ES6 新加的symbol和复杂数据类型object。
symbol这里暂时不做探讨,null和undefined如果需要用到直接var a = null/var a = undefined 更方便,所以平时我们经常用到的是number,string,Boolean,object这些类型的转换。
1.任意类型转number
1)Number(),直接转化,eg : Number('12345') //12345;
2)parseInt(),整数转化,eg : parseInt(1.23) // 1 浮点数转整数; parseInt('123') // 123 字符串转整数; parseInt('1s2') // 1 此函数会在解析遇到的第一个非数字停止解析;
parseInt('ss111') // NaN 直接碰见无法解析的字符串会返回NaN; 还有parseInt(‘011’,8) // 9 ; parseInt('011',10) // 11 后面的10和8表示10进制还是8进制
3)parseFloat(),小数转化, eg: parseFloat('1.23') // 1.23
4)Any-0,你想转化的类型-0就可以转化为对应的整数,eg: 's'-0 // NaN ; '123'-0 // 123
5) + 加号可以把类型转化为number,eg: + ‘123’ // 123 ; +ture // 1
2.任意类型转string
1)String() 直接String(123) //'123' ; String(true) //'true' ; var a={} String(a) // [object Object]
2).toString 一般不这么来用
3)‘’+Any 前面加个空字符可以方便转化
3.任意类型转Boolean
1)Boolean() 可以转化为Boolean类型, eg: Boolean(1) // true
2)!!+ Any 可以用两个叹号加任意类型字符串转化为Boolean类型,
这里主要记住5个falsy值 0,NaN,'',null,undefined 这5个会转化为false,其他的都会转为true。
我们常用的就是这些,关于object类型,当你生成一个object,会在Heap里面分配一块内存,然后把内存的地址放到stack里面,所以object对应的stack里面实际是一串地址,当你给object转化为一个简单数据类型时,实际上是没有意义的。