JavaScript 数字

x33g5p2x  于2022-04-23 转载在 Java  
字(3.6k)|赞(0)|评价(0)|浏览(415)

在本教程中,您将通过示例了解JavaScript 数字。
    在JavaScript中,数字是基本数据类型。例如,

const a = 3;
const b = 3.13;

与其他一些编程语言不同,您不必使用 int、float 等专门声明整数值或浮点值。
    您可以使用指数符号 e 来表示太大或太小的数字。例如,

const a1 = 5e9;
console.log(a1); //5000000000

const a2 = 5e-5;
console.log(a2); // 0.00005

数字也可以用十六进制表示法来表示。例如,

const a = 0xff;
console.log(a); // 255

const b = 0x00 ;
console.log(b); // 0
+ 运算符与数字

当 + 与数字一起使用时,它用于数字相加。例如,

const a = 4 + 9;
console.log(a); // 13

当 + 与数字和字符串一起使用时,+ 用于连接它们。例如,

const a = '4' + 9;
console.log(a); // 49

当数字字符串与 + 号之外的其他数字操作符一起使用时,数字字符串将转换为数字。例如,

const a = '4' - 2;
console.log(a); // 2

const a = '4' / 2;
console.log(a); // 2

const a = '4' * 2;
console.log(a); // 8
JavaScript NaN

在 JavaScript 中,NaN(Not a Number)是一个关键字,表示该值不是数字。
    对字符串类型的数值执行算术运算( + 号除外)会导致 NaN。例如,

const a = 4 - 'hello';
console.log(a); // NaN

内置函数 isNaN() 可用于查找值是否为数字。例如,

const a = isNaN(9);
console.log(a); // false

const a = isNaN(4 - 'hello');
console.log(a); // true

当 typeof 运算符用于 NaN 值时,它会给出一个数字输出。例如,

const a = 4 - 'hello';
console.log(a); // NaN
console.log(typeof a); // "number"
JavaScript Infinity

在 JavaScript 中,当计算超过最大(或最小)可能数时,返回 Infinity(或 -Infinity)。例如,

const a = 2 / 0;
console.log(a); // Infinity

const a = -2 / 0;
console.log(a); // -Infinity
JavaScript BigInt

在 JavaScript 中,数字类型只能表示小于(253-1)和大于 -(253-1)的数字。但是,如果需要使用比这个更大的数字,可以使用 BigInt 数据类型。
    通过将 n 附加到整数的末尾来创建 BigInt 数。例如,

// BigInt value
const value = 900719925124740998n;

// Adding two big integers
const value1 = value + 1n;
console.log(value1); // returns "900719925124740999n"

注意: BigInt 是在较新版本的 JavaScript 中引入的,许多浏览器不支持。访问JavaScript BigInt 支持以了解更多信息。

JavaScript 数字以 64 位存储

在 JavaScript 中,数字以 64 位格式 IEEE-754 存储,也称为“双精度浮点数”。
    数字存储在 64 bits(数字存储在 0 到 51 bit 位置,指数存储在 52 到62 bit 位置,符号存储在 63 bit 位置)。

数字指数符号
52 bits(0 - 51)11 bits(52- 62)1 bit(63)
精度问题

对浮点数的操作会导致一些意想不到的结果。例如,

const a = 0.1 + 0.2;
console.log(a); // 0.30000000000000004

结果应该是 0.3 而不是 0.30000000000000004。发生此错误是因为在 JavaScript 中,数字在内部以二进制形式存储来表示十进制数字。十进制数不能精确地以二进制形式表示。
    要解决上述问题,您可以执行以下操作:

const a = (0.1 * 10 + 0.2 * 10) / 10;
console.log(a); // 0.3

您也可以使用 toFixed() 方法。

const a = 0.1 + 0.2;
console.log(a.toFixed(2)); // 0.30

toFixed(2) 将十进制数四舍五入为两个十进制值。

const a = 9999999999999999
console.log(a); // 10000000000000000

注意:整数最多可精确到15位。

数字对象

您还可以使用 new 关键字创建数字。例如,

const a = 45;

// creating a number object
const b = new Number(45);

console.log(a); // 45
console.log(b); // 45

console.log(typeof a); // "number"
console.log(typeof b); // "object"

注意:建议避免使用数字对象。使用数字对象会减慢程序的速度。

JavaScript 数字方法

这是 JavaScript 中内置数字方法的列表。

方法描述
isNaN()判断传入的值是否为 NaN
isFinite()确定传入的值是否为有限数
isInteger()判断传入的值是否为整数
isSafeInteger()确定传入的值是否为安全整数
parseFloat(string)将数字浮点字符串转换为浮点数
parseInt(string, [radix])将数字字符串转换为整数
toExponential(fractionDigits)以指数表示法返回数字的字符串值
toFixed(digits)以定点表示法返回数字的字符串值
toPrecision()以指定精度返回数字的字符串值
toString([radix])以指定的基数返回字符串值
valueof()返回数值
toLocaleString()返回具有数字的语言敏感表示的字符串

例如,

// check if a is integer
const a = 12;
console.log(Number.isInteger(a)); // true

// check if b is NaN
const b = NaN;
console.log(Number.isNaN(b)); // true

// display upto two decimal point
const d = 5.1234;
console.log(d.toFixed(2)); // 5.12
JavaScript 数字属性

这是 JavaScript 中的数字属性列表。

属性描述
EPSILON返回两个可表示数字之间的最小间隔
MAX_SAFE_INTEGER返回最大安全整数
MAX_VALUE返回最大可能值
MIN_SAFE_INTEGER返回最小安全整数
MIN_VALUE返回最小的可能值
NaN表示“Not-a-Number”值
NEGATIVE_INFINITY表示负无穷大
POSITIVE_INFINITY表示正无穷大
prototype允许向数字对象添加属性

例如,

// largest possible value
const a = Number.MAX_VALUE;
console.log(a); // 1.7976931348623157e+308

// maximum safe integer
const a = Number.MAX_SAFE_INTEGER;
console.log(a); // 9007199254740991
JavaScript Number() 函数

Number() 函数用于将各种数据类型转换为数字。例如,

const a = '23'; // string
const b = true; // boolean

//converting to number
const result1 = Number(a);
const result2 = Number(b);

console.log(result1); // 23
console.log(result2); // 1

如果您想了解有关数字转换的更多信息,请访问JavaScript 类型转换。

上一教程 :JS for…in                                          下一教程 :JS Symbols

参考文档

[1] Parewa Labs Pvt. Ltd. (2022, January 1). Getting Started With JavaScript, from Parewa Labs Pvt. Ltd: https://www.programiz.com/javascript/numbers

相关文章