We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
本章介绍数字的单一类型
您可以在JavaScript中表示整数和浮点数:
98 123.45
但是,所有数字只有一个类型:它们都是双精度的,是根据IEEE浮点算术标准(IEEE 754)实现的64位浮点数。
整数只是没有小数点的浮点数:
98 === 98.0 true
请注意,大多数JavaScript引擎通常都可以使用实整数,并具有所有相关的性能和存储大小优势。
让我们检查数字的文字。
整数文字
几个整数文字可让您以各种底数表示整数:
// Binary (base 2) assert.equal(0b11, 3); // Octal (base 8) assert.equal(0o10, 8); // Decimal (base 10): assert.equal(35, 35); // Hexadecimal (base 16) assert.equal(0xE7, 231);
浮点文字
浮点数只能以10为底表示。
分数:
> 35.0 35
指数:eN表示×10N
> 3e2 300 > 3e-2 0.03 > 0.3e2 30
句法陷阱:整数文字的属性 访问整数文字的属性会带来一个陷阱:如果整数文字后紧跟一个点,则该点将被解释为十进制点:
7.toString(); // syntax error
解决此陷阱的方法有四种:
7.0.toString() (7).toString() 7..toString() 7 .toString() // space before dot
二元算术运算符 列出了JavaScript的二进制算术运算符。
%是余数运算符
%是余数运算符,不是取模运算符。其结果具有第一个操作数的符号:
> 5 % 3 2 > -5 % 3 -2
一元加号(+)和负号(-)
两个运算符都将其操作数强制转换为数字:
> +'5' 5 > +'-12' -12 > -'9' -9
因此,一元加号使我们可以将任意值转换为数字。
递增(++)和递减(-)
增量运算符++存在于前缀版本和后缀版本中。在这两个版本中,它都破坏性地向其操作数添加一个。因此,其操作数必须是可以更改的存储位置。
减量运算符-的工作原理相同,但从其操作数中减去一个。接下来的两个示例说明了前缀和后缀版本之间的区别。
总结了递增和递减运算符。
接下来,我们将看看这些使用中的运算符的示例。
前缀++和前缀-更改其操作数,然后返回它们。
let foo = 3; assert.equal(++foo, 4); assert.equal(foo, 4); let bar = 3; assert.equal(--bar, 2); assert.equal(bar, 2);
后缀++和后缀-返回其操作数,然后更改它们。
let foo = 3; assert.equal(foo++, 3); assert.equal(foo, 4); let bar = 3; assert.equal(bar--, 3); assert.equal(bar, 2);
您还可以将这些运算符应用于属性值:
const obj = { a: 1 }; ++obj.a; assert.equal(obj.a, 2);
和数组元素:
const arr = [ 4 ]; arr[0]++; assert.deepEqual(arr, [5]);
这是将值转换为数字的三种方法:
assert.equal(Number(123.45), 123.45); assert.equal(Number(''), 0); assert.equal(Number('\n 123.45 \t'), 123.45); assert.equal(Number('xyz'), NaN);
可以配置如何将对象转换为数字,例如,通过覆盖.valueOf():
> Number({ valueOf() { return 123 } }) 123
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Numbers
本章介绍数字的单一类型
JavaScript只有浮点数
您可以在JavaScript中表示整数和浮点数:
98
123.45
但是,所有数字只有一个类型:它们都是双精度的,是根据IEEE浮点算术标准(IEEE 754)实现的64位浮点数。
整数只是没有小数点的浮点数:
请注意,大多数JavaScript引擎通常都可以使用实整数,并具有所有相关的性能和存储大小优势。
Number 文字
让我们检查数字的文字。
整数文字
几个整数文字可让您以各种底数表示整数:
浮点文字
浮点数只能以10为底表示。
分数:
指数:eN表示×10N
句法陷阱:整数文字的属性
访问整数文字的属性会带来一个陷阱:如果整数文字后紧跟一个点,则该点将被解释为十进制点:
解决此陷阱的方法有四种:
算术运算符
二元算术运算符

列出了JavaScript的二进制算术运算符。
%是余数运算符
%是余数运算符,不是取模运算符。其结果具有第一个操作数的符号:
一元加号(+)和负号(-)
两个运算符都将其操作数强制转换为数字:
因此,一元加号使我们可以将任意值转换为数字。
递增(++)和递减(-)
增量运算符++存在于前缀版本和后缀版本中。在这两个版本中,它都破坏性地向其操作数添加一个。因此,其操作数必须是可以更改的存储位置。
减量运算符-的工作原理相同,但从其操作数中减去一个。接下来的两个示例说明了前缀和后缀版本之间的区别。
总结了递增和递减运算符。
接下来,我们将看看这些使用中的运算符的示例。
前缀++和前缀-更改其操作数,然后返回它们。
后缀++和后缀-返回其操作数,然后更改它们。
您还可以将这些运算符应用于属性值:
和数组元素:
转换成数字
这是将值转换为数字的三种方法:
可以配置如何将对象转换为数字,例如,通过覆盖.valueOf():
The text was updated successfully, but these errors were encountered: