目录
1、数据强制转换——Number
方法一 使用Number()函数
var a = "123";
a = Number(a);
字符串转Number
如果字符串是数字,则直接转成数字
如果字符串中有非数字内容,则转成NaN
如果字符串是空串或者全部由空格组成,则转成0
Boolean转Number
false ——> 0
true ——> 1
Null转Number ——> 0
Undefined转Number ——> NaN
方法二 使用parseInt() parseFloat()函数
parseInt() 函数是从字符串中获取一个整数,parseFloat() 函数是从字符串中获取一个小数
parseInt()的工作是从被转换的字符串的第一个数字开始直到碰到第一个不是数字的字符停止,第一字符必须是数字,不然就会转成NaN
parseFloat() 的工作是从被转换的字符串的第一个数字开始直到碰到第一个不是数字的字符停止(可以有一个小数点),第一字符必须是数字,不然就会转成NaN
var a = "156px";
a = parseInt(a);
console.log(typeof a)
console.log(a)
var a = "156.258px";
a = parseFloat(a);
console.log(typeof a)
console.log(a)
2、其它进制数字转换——Number
十六进制
在js中十六进制以0x开头
var a = 0x50;
console.log(a);
八进制
在js中八进制以0开头
var a = 050;
console.log(a);
二进制
在js中二进制以0b开头,但不是所有浏览器都支持二进制
var a = 0b10;
console.log(a)
但是有个问题是
var a = "0152";
像这样的以0开头的字符串当我们想转换成数字时,不是每个浏览器都会当成八进制解析,有些会以十进制来解析。
这时候parseInt()的第二个参数就有了作用。parseInt(a,10),“10”代表以十进制解析
3、其他类型转换——Boolean
用Boolean()函数
数字转Boolean,除了0和NaN,其余都是true
字符串转Boolean,除了空串都是true
Null和Undefined都会转成true
对象也会转成true