数值

来源:互联网 发布:怎么生成淘宝链接e22a 编辑:程序博客网 时间:2024/04/28 07:26

数值

  • 数值
    • 进制
    • 整数和浮点数
    • 数值范围
    • 数值检测
      • NaN
      • isNaN

进制

十进制
进行算术计算时,八进制与十六进制表示的数值,最终都会被转换为十六进制。
十六进制
数字序列范围:0~9以及A~F(一般以0x开头)
var num1 = 0xa;console.log(num1);  //10 对应十进制的10
八进制
数字序列范围:0~7。如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析。一般以0开头
var num1 = 07;console.log(num1);  //7var num2 = 0123;console.log(num2);  //83var num3 = 019;console.log(num3);  //9

整数和浮点数

科学计数法:
xe+y 表示x乘以10的y次方,e 表示 exponent

var n1 = 5e+4;console.log(n1); //50000var n2 = 8e+3;var n3 = 7e-2;

浮点数在计算时,精度远远不如整数。
通常把浮点数转换为整数之后再进行计算。
不要判断两个浮点数是否相等。

console.log(0.1 + 0.2); //0.30000000000000004console.log(0.07 * 100);    //7.000000000000001

数值范围

由于内存的限制,ECMAScript并不能保存所有的值。

最小值:Number.MIN_VALUE

console.log(Number.MIN_VALUE);  //5e-324console.log(5e-325);    //0 比最小值再小一点的数就是0了

最大值:Number.MAX_VALUE

console.log(Number.MAX_VALUE);  //1.7976931348623157e+308console.log(1.8e+308);  //Infinity 比最大值还大的数为Infinity,正无穷console.log(typeof (Infinity)); //'number' 也是数值型

正无穷:Infinity
负无穷:-Infinity

数值检测

NaN

NaN 非数值(not a number)。
NaN 与任何值都不相等,包括 NaN 本身。

console.log('abc' / 10);  //NaNconsole.log(typeof (NaN));  //'number'console.log(NaN == NaN);    //false

isNaN()

任何不能转换为数值的值,都会导致这个函数返回true

console.log(isNaN(NaN));    //trueconsole.log(isNaN(123));    //false