【Javascript基础】Number

Number

根据标准的定义,Javascript中的数值是采用IEEE 754中的双精度64位格式, 这样的编码会导致一些有趣的结果,在Javascript中没有整数类型的概念,所以当你在进行数值计算的时候要格外的小心,例如,下面就是简单的示例:

0.1 + 0.2 = 0.30000000000000004

在实际应用中,整数的数值可以被当做是32位的int类型来看待,这里注意了我们描述是整数的数值,并非整形,把整数的数值看做32位的目的是可以理解位运算.

Number对标准的算术计算都支持的,这包括加法、减法、模运算以及其他的,这里还存在一个我们忘记提及的内置对象,它就是Math,它提供了很多高级的算术计算的方法和常量.

Math.sin(3.5)
var circumference = Math.PI * (r * r);

我们可以使用内置的parseInt()方法来实现将数值字符串转换为整数的功能,该方法可以接收一个可选的第二个参数,该参数用来指定待转数值字符串的进制.

parseInt('123', 10);//结果是:123,这里的第二个参数设置待转数值字符串是十进制数字
parseInt('010', 2);//结果是:2, 这里的第二个参数设置待转数值字符串是二进制数字

相似地,你可以使用parseFloat()方法来解析浮点数值,不同于parseInt()方法,parseFloat()只有一个参数,它的进制一直都是十进制的.

你还可以使用一元操作符+来实现数值字符串到数字的转换

+ "42"; //42
+ "010"; //10
+ "0x10"; //16

如果待转换的字符串并不是一个数值,例如hello, 这时会返回有一个特殊的值–NaN(“Not a Number”的简写形式)

parseInt('hello', 10);//NaN

Javascript还存在一个内置方法–isNaN(), 该方法用来检验值是否为NaN,

isNaN(NaN);//true;
isNaN(1);//false;
isNaN('hello');//true;

Javascript还有两种特殊的值,Infinity-Infinity,分别代表正无穷大负的无穷大.例如:

1 / 0; //Infinity
-1 / 0; //Infinity

Javascript也提供一个内置方法isFinite()方法,用来校验数值是否是有限数值,例如:

isFinite(1/0);//false
isFinite(-Infinity);//false
isFinite(NaN);//false
isFinite(1);//true

注意:
parseInt()和parseFloat()方法解析字符串时,会在遇到无法构成有效数值的时候终止解析,例如:

parseInt('123abc');//这里的返回值是: 123, 当解析到第四个字符串时, 'a'并不能和前面解析好的数值一起构成有效的数值,所以解析停止,返回已经解析到的结果。

然而,通过+运算符来实现转化,则要求整个数值字符串本身就是一个有效的数值,如果不是直接返回NaN,例如:

+ "123abc";//返回: NaN

原文: https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript#Numbers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值