在JavaScript中,数字是原始数据类型。例如,
let a = 3;
let b = 3.13;
与其他一些编程语言不同,您不必使用int , float等专门声明整数或浮点值。
您可以使用指数符号e来包含太大或太小的数字。例如,
let a1 = 5e9;
console.log(a1); //5000000000
let a2 = 5e-5;
console.log(a2); // 0.00005
数字也可以用十六进制表示法表示。例如,
let a = 0xff;
console.log(a); // 255
let b = 0x00 ;
console.log(b); // 0
+带数字的运算符
当+
与数字一起使用时,它用于添加数字。例如,
let a = 4 + 9;
console.log(a); // 13
当+
与数字和字符串,它用于连接它们。例如,
let a = '4' + 9;
console.log(a); // 49
当数字字符串与其他数字操作一起使用时,该数字字符串将转换为数字。例如,
let a = '4' - 2;
console.log(a); // 2
let a = '4' / 2;
console.log(a); // 2
let a = '4' * 2;
console.log(a); // 8
JavaScript NaN
在JavaScript中, NaN
(非数字)是一个关键字,指示该值不是数字。
对具有字符串的数值执行算术运算(除+
以外)将导致NaN
。例如,
let a = 4 - 'hello';
console.log(a); // NaN
内置函数 isNaN()
可用于查找值是否为数字。例如,
let a = isNaN(9);
console.log(a); // false
let a = isNaN(4 - 'hello');
console.log(a); // true
当将typeof
运算符用于NaN
值时,它将给出数字输出。例如,
let a = 4 - 'hello';
console.log(a); // NaN
console.log(typeof a); // "number"
JavaScript无限
在JavaScript中,当完成的计算超过最大可能数时,将返回Infinity
(或-Infinity
)。例如,
let a = 2 / 0;
console.log(a); // Infinity
let a = -2 / 0;
console.log(a); // -Infinity
JavaScript BigInt
在JavaScript中,数字类型只能表示小于(2 53-1 )且大于-(2 53-1 )的数字 。但是,如果您需要使用更大的数字,则可以使用BigInt数据类型。
通过将n附加到整数的末尾来创建BigInt数字。例如,
// BigInt value
let value = 900719925124740998n;
// Adding two big integers
let value1 = value + 1n;
console.log(value1); // returns "900719925124740999n"
注意: BigInt是在较新版本的JavaScript中引入的,许多浏览器均不支持。访问JavaScript BigInt支持以了解更多信息。
JavaScript数字以64位存储
在JavaScript中,数字以64位格式IEEE-754存储,也称为“双精度浮点数”。
数字以64位存储(数字以0至51位存储,指数以52至62位存储,符号以63位存储)
Numbers | Exponent | Sign |
---|---|---|
52 bits(0 – 51) | 11 bits(52- 62) | 1 bit(63) |
精度问题
对浮点数进行运算会导致某些意外结果。例如,
let a = 0.1 + 0.2;
console.log(a); // 0.30000000000000004
结果应该是0.3而不是0.30000000000000004 。发生此错误的原因是,在JavaScript中,数字以二进制形式存储,以在内部表示十进制数字。而且十进制数字不能完全以二进制形式表示。
要解决以上问题,您可以执行以下操作:
let a = (0.1 * 10 + 0.2 * 10) / 10;
console.log(a); // 0.3
您也可以使用toFixed()
方法。
let a = 0.1 + 0.2;
console.log(a.toFixed(2)); // 0.30
toFixed(2)
将十进制数四舍五入为两个十进制值。
let a = 9999999999999999
console.log(a); // 10000000000000000
注意 :整数最大为15位数字。
数字对象
您也可以使用new
关键字创建数字。例如,
let a = 45;
// creating a number object
let b = new Number(45);
console.log(a); // 45
console.log(b); // 45
console.log(typeof a); // "number"
console.log(typeof b); // "object"
注意 :建议避免使用数字对象。使用数字对象会降低程序速度。
JavaScript编号方法
这是JavaScript中内置数字方法的列表。
Method | Description |
---|---|
isNaN() | determines whether the passed value is NaN |
isFinite() | determines whether the passed value is a finite number |
isInteger() | determines whether the passed value is an integer |
isSafeInteger() | determines whether the passed value is a safe integer |
parseFloat(string) | converts the numeric floating string to floating-point number |
parseInt(string, [radix]) | converts the numeric string to integer |
toExponential(fractionDigits) | returns a string value for a number in exponential notation |
toFixed(digits) | returns a string value for a number in fixed-point notation |
toPrecision() | returns a string value for a number to a specified precision |
toString([radix]) | returns a string value in a specified radix(base) |
valueof() | returns the numbers value |
toLocaleString() | returns a string with a language sensitive representation of a number |
例如,
// check if a is integer
let a = 12;
console.log(Number.isInteger(a)); // true
// check if b is NaN
let b = NaN;
console.log(Number.isNaN(b)); // true
// display upto two decimal point
let d = 5.1234;
console.log(d.toFixed(2)); // 5.12
JavaScript数字属性
这是JavaScript中Number属性的列表。
Property | Description |
---|---|
EPSILON | returns the smallest interval between two representable numbers |
MAX_SAFE_INTEGER | returns the maximum safe integer |
MAX_VALUE | returns the largest possible value |
MIN_SAFE_INTEGER | returns the minimum safe integer |
MIN_VALUE | returns the smallest possible value |
NaN | represents ‘Not-a-Number’ value |
NEGATIVE_INFINITY | represents negative infinity |
POSITIVE_INFINITY | represents positive infinity |
prototype | allows the addition of properties to Number objects |
例如,
// largest possible value
let a = Number.MAX_VALUE;
console.log(a); // 1.7976931348623157e+308
// maximum safe integer
let a = Number.MAX_SAFE_INTEGER;
console.log(a); // 9007199254740991
JavaScript Number()函数
Number()
函数用于将各种数据类型转换为数字。例如,
let a = '23'; // string
let b = true; // boolean
//converting to number
let result1 = Number(a);
let result2 = Number(b);
console.log(result1); // 23
console.log(result2); // 1
如果要了解有关数字转换的更多信息,请访问JavaScript类型转换。