在本教程中,您将通过示例了解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(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(或 -Infinity)。例如,
const a = 2 / 0;
console.log(a); // Infinity
const a = -2 / 0;
console.log(a); // -Infinity
在 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 位格式 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 中内置数字方法的列表。
方法 | 描述 |
---|---|
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 中的数字属性列表。
属性 | 描述 |
---|---|
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
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
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/zsx0728/article/details/124349938
内容来源于网络,如有侵权,请联系作者删除!