JavaScript Number 对象

JavaScript 只有一种数字类型,那就是 Number 对象

Number 对象的值可以是整数,也可以是浮点数,甚至是科学计数法(指数计数)

var pi=3.14;    // 浮点数
var x=34;       // 整数

极大或极小的数字可通过科学(指数)计数法来写

var y=123e5;    // 12300000
var z=123e-5;   // 0.00123

所有 JavaScript 数字均为 64 位

JavaScript 没有定义不同类型的数字,比如整数、短、长、浮点等等

JavaScript 中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型

JavaScript 采用 IEEE754 标准定义的 64 位浮点格式表示数字

  1. 它能表示最大值为 ±1.7976931348623157 x 10308
  2. 最小值为 ±5 x 10-324
值 (aka Fraction/Mantissa) 指数 Sign
52 bits (0 - 51) 11 bits (50 - 62) 1 bit (63)

精度

整数(不使用小数点或指数计数法)最多为 15 位

var x = 999999999999999;   // x 为 999999999999999
var y = 9999999999999999;  // y 为 10000000000000000

运行范例 »

小数的最大位数是 17,但是浮点运算并不总是 100% 准确

var x = 0.2+0.1; // 输出结果为 0.30000000000000004

运行范例 »

八进制和十六进制

如果前缀为 "0",则 JavaScript 会把数值常量解释为八进制数

如果前缀为 "0x",则解释为十六进制数

var y = 0377; 
var z = 0xFF;

运行范例 »

绝不要在数字前面写零,除非您需要进行八进制转换

默认情况下,JavaScript 数字为十进制显示

但我们也可以使用 toString() 方法 输出 16 进制、8 进制、2 进制

var myNumber=128;
myNumber.toString(16);   // 返回 80
myNumber.toString(8);    // 返回 200
myNumber.toString(2);    // 返回 10000000

运行范例 »

无穷大(Infinity)

  1. 当数字运算结果超过了 JavaScript 所能表示的数字上限(溢出), 结果为一个特殊的无穷大(infinity)值

    JavaScript 中以 Infinity 表示

  2. 同样地,当负数的值超过了 JavaScript 所能表示的负数范围,结果为负无穷大

    JavaScript 中以 -Infinity 表示

无穷大值的行为特性和我们所期望的是一致的:

基于它们的加、减、乘和除运算结果还是无穷大 ( 当然还保留它们的正负号)

myNumber=2;
while (myNumber != Infinity)
{
    //重复计算直到 myNumber 等于 Infinity
    myNumber = myNumber*myNumber; 
}

运行范例 »

除以 0 也产生了无限

var x = 2/0;
var y = -2/0;

运行范例 »

NaN - 非数字值

NaN 属性是代表非数字值的特殊值

该属性用于指示某个值不是数字

可以把 Number 对象设置为该值,来指示其不是数字值

而且我们可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值

var x = 1000 / "Apple";
isNaN(x); // 返回 true

var y = 100 / "1000";
isNaN(y); // 返回 false

运行范例 »

除以 0 是无穷大,无穷大是一个数字,也就是值 infinity 是一个数字

var x = 1000 / 0;
isNaN(x); // 返回 false

运行范例 »

数字可以是数字或者对象

数字可以直接赋值给变量进行初始化

var x = 123;

同时也可以使用 JavaScript 数字对象初始化数据

var y = new Number(123);

两者的区别之一就是它们的 typeof() 输出结果是不一样的

var x = 123;
var y = new Number(123);

typeof(x) // 返回 Number
typeof(y) // 返回 Object

运行范例 »

直接导致使用恒等于 (====) 的结果是 false

var x = 123;
var y = new Number(123);
(x === y) // 为 false,因为 x 是一个数字,y 是一个对象
(x == y)  // true 因为值都是 123

运行范例 »

数字属性

Number 对象具有以下属性

  1. MAX_VALUE
  2. MIN_VALUE
  3. NEGATIVE_INFINITY
  4. POSITIVE_INFINITY
  5. NaN
  6. prototype
  7. constructor

数字方法

Number 对象具有以下方法

  1. toExponential()
  2. toFixed()
  3. toPrecision()
  4. toString()
  5. valueOf()

JavaScript 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.