Number类型的实质是一个64位的浮点数,之前也看到

这个问题是在着名的问答网站——stackoverflow上看到的。 之前也看到过JavaScript的这个问题,但是没有深入了解,今天在StackOverflow上看到了答案,感觉不错,记下来分享给大家。问题的描述是这样的: 复制代码 代码如下: console.log;//10 console.log;//SyntaxError: Unexpected token ILLEGAL 为什么前者正常,而后者报错呢。原因就是,在JavaScript中,数字后面的"."操作符是的意义是不确定。因为它既可能是一个浮点数的标志,又可能是取一个对象的属性的运算符。但是JavaScript的解释器把他当做了浮点数的标志,所以上面的代码和下面的是等价的 复制代码 代码如下: console.log;//正常 console.log;//这样的话,当然就报错了^_^

JavaScript中所有的数字,无论是整数还是小数,其类型均为Number。在程序内部,Number类型的实质是一个64位的浮点数,这与Java中double类型的浮点数是一致的;因此,JavaScript中所有的数都是浮点数。遵循IEEE 754标准,JavaScript所能表示的数值范围为正负1.7976931348623157乘以10的308次方,其最小所能表示的小数为正负5乘以10的负324次方,这两个边界值可以分别通过访问Number对象的MAX_VALUE属性和MIN_VALUE属性来获取。

判断整数的方法有两种:正则判断和逐字判断。

对于整数,根据ECMAScript标准的要求(

由于逐字判断效率过于低下,这里就不予描述了,有兴趣的看客可以自己谷歌。

实验

复制代码 代码如下:var r = /^+?[1-9][0-9]*$/; //正整数 console.log;

显示JavaScript的最大数的绝对值、最小小数的绝对值:复制代码 代码如下:console.log;console.log;显示结果为1.7976931348623157e+308和5e-324。

效果测试:

本文由必威发布于必威-运维,转载请注明出处:Number类型的实质是一个64位的浮点数,之前也看到

相关阅读