JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。
JavaScript的Number类型为双精度IEEE 754 64位浮点类型。
最近出了stage3BigInt 任意精度数字类型,已经进入stage3规范
数值字面量:数值的固定值的表示法
110 1024 60.5
进制
二进制
var a = 0b111;
十进制
var num = 9;
console.log(num);
进行算数计算时,八进制和十六进制表示的数值最终都将被转换成十进制数值。
十六进制
var num = 0xA;
console.log(num);
数字序列范围:0~9以及A~F
八进制
var num1 = 07; // 对应十进制的7
var num2 = 019; // 对应十进制的19
var num3 = 08; // 对应十进制的8
console.log(num3);
数字序列范围:0~7
如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析
浮点数
- 浮点数的精度问题
浮点数
var n = 5e-324; // 科学计数法 5乘以10的-324次方
浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数
var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004
console.log(0.07 * 100);
数值范围
最小值:Number.MIN_VALUE, JavaScript 中可表示的最小的数(接近 0,但不是负数),这个值为: 5e-324
最大值:Number.MAX_VALUE, JavaScript 中可表示的最大的数,这个值为: 1.7976931348623157e+308
无穷大:Infinity
无穷小:-Infinity
<script type="text/javascript">
var t1=1.7976931348623157E+10308
document.write(t1)
document.write("<br />")
var t2=-1.7976931348623157E+10308
document.write(t2)
</script>
数值判断
- NaN:not a number
NaN 与任何值都不相等,包括他本身
语法: numObj.toFixed(digits)
参数: digits:小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0。
返回值: 使用定点表示法表示给定数字的字符串。
var a = 1;
var b = 3.14;
//typeof可以查看变量的类型
//alert(typeof(a));
//alert(typeof(b));
var c = 0b111; //0b代表2进制 2进制满2进1
console.log(c);
var d = 111; //十进制 十进制满10进1
var e = 017; //八进制用0 表示 8进制满8进1
console.log(e);
var f = 0xaa; //十六进制 满16进1
console.log(f);
//浮点数是有一个精度的问题
var g = 0.1+0.2;
console.log(g);
//对于浮点数而言,不要判断两个浮点数他们是否相等,因为在计算的时候会有精度问题
console.log(0.3 == 0.1+0.2);
//求NUmber类型的最大值和最小值
console.log(Number.MAX_VALUE);
console.log(Number.MIN_VALUE);
//字符串+数字
var s = "a";
s = s+123;
//isNaN判断一个值是否是非数字
console.log(isNaN(s));
//NaN表示非数字
var k = parseInt(s);
console.log(k);