JavaScript 转换为数字
■知识点
常用值转换为数字说明如下。
1 => 1
0 => 0
true => 1
false => 0
"" => 0
Undefined => NaN
null => 0
NaN => NaN
Infinity => Infinity
把值转换为数字的常用方法有以下3种。
parselnt():可以把值转换为整数。
parseFloatO:可以把值转换为浮点数。
使用乘号运算符。
■实例设计
parselnt()方法可以把前面分析合法的数字字符全部转换为数值并返回。
console.log (parselnt ("123abc")); //返回数字 123
console.log(parselnt ("1.73")); //返回攀字 1
console, log (parselnt (".123")); //返回值NaN
如果是以0为开头的数字宇符串,则parselntO把它作为八进制数字处理:先把它转换为八进制的数值,然后再转换为十进制数字返回。
如果以Ox为开头的数字字符串,则parselntO把它作为十六进制数字处理:先把它转换为十六进制数值,然后再转换为十进制数字返回。
var d = 010; //八进制数字字符串
var e = "0x10"; //十六进制数字字符串
console. log (parselnt (d)); //返回十进制数字8
console. log (parselnt (e) ); //返回十进制数字16
parselntO也支持基模式,可以把二进制、八进制、十六进制等不同进制的数字字符串转换为整数。 基模式由parselnt()函数的第二个参数指定。
下面的代码把十六进制数字字符串"123abc"转换为十进制整数。
var a = "123abc";
console.log (parselnt(a, 16)); //返回值十进制整数 1194684
下面的代码把二进制、八进制和十进制数字字符串转换为十进制的整数。
console.log(parselnt ("10",2)); //把二进制数字10转换为十难制整数为2
console.log(parseInt ("lO",8)); //把八进制数字10转换为十邊制整数为8
console.log(parselnt ("10",10)); //把十进制数宇10转铁为十进制整数为10
如果第1个参数是十进制的值,包含0前缀,为了避免被误解为八进制数字,则应该指定第2个参数值为10,即显式定义基模式,而不是采用默认基模式。
console.log (parselnt ("010") ) ; //把默认基模式数字010转换为十进制整数为10
console.log (parselnt ("010", 8) ) ; //把八进制数字010转换为十进制整数为8
console.log (parselnt ("010", 10) ); //把十进制数字010转换为十进制整数为10
parseFloatO的参数必须是十进制形式的字符串,而不能够使用八进制或十六进制的数字字符串。同时对于数字前面的0 (八进制数字标识)会忽略,对于十六进制形式的数字将返回0。
console.log(parseFloat("123")); //返回数值123
console.log(parseFloat("123abc")); //返回数值123
console.log(parseFloat("010")); //返回数值10
console.log(parseFloat("0xl0n)); //返回数值0
console.log(parseFloat("xl0n)); //返回数值NaN
如果变量乘以1,则变量会被JavaScript自动转换为数值,乘以1之后,结果没有发生变化,但是值的类型被转换为数值。如果值无法被转换为合法的数值,则返回NaN。
var b = 1; //数值
var b = "1"; //数字字符串
console.log(a + (b * 1)); //返回数值2
点击加载更多评论>>