Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. 表达式和运算符
  5. 取余(%)

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

取余(%)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

取余%)运算符返回左侧操作数除以右侧操作数的余数。它总是与被除数的符号保持一致。

尝试一下

console.log(13 % 5);// Expected output: 3console.log(-13 % 5);// Expected output: -3console.log(4 % 2);// Expected output: 0console.log(-4 % 2);// Expected output: -0

语法

js
x % y

描述

对于运算:n % d,其中n 被称为被除数,d 被称为除数。如果其中的任意一个操作数为NaN,或n 为正负无穷(±Infinity),又或者d 为 ±0,则该运算返回NaN。否则,如果d 为正负无穷(±Infinity),或n 为 ±0,则返回被除数n

如果两个操作数都非零且有限(非正负无穷)时,余数r 将通过r := n - d * q 计算获得,其中q 是一个使得r 与被除数n 具有相同符号,并且会使r 尽可能地接近于 0 的整数。

请注意,虽然在大多数语言中,% 是取余运算符,但在某些语言(例如:Python 和 Perl)中,它是取模运算符。取模运算被定义为k := n - d * q,其中q 是一个使得k 与除数具有相同符号,并且会使k 尽可能地接近于 0 的整数。对于同号的两根操作数,两者是等价的,但在操作数具有不同的符号时,取模运算的结果总是与除数同号,而取余运算则是余数与被除数同号,d 的符号即可使两者的结果不相同。为了在 JavaScript 中使用n % d 实现取模运算,可以使用((n % d) + d) % d。在 JavaScript 中,模运算(没有专用的运算符)用于规范化按位移位运算符(<<>>,等等)的第二个操作数,以使得偏移量始终为一个正数。

示例

被除数为正数

js
13 % 5; // 31 % -2; // 11 % 2; // 12 % 3; // 25.5 % 2; // 1.5

被除数为负数

js
-13 % 5; // -3-1 % 2; // -1-4 % 2; // -0

被除数为 NaN

js
NaN % 2; // NaN

被除数为 Infinity

js
Infinity % 2; // NaNInfinity % 0; // NaNInfinity % Infinity; // NaN2 % Infinity; // 20 % Infinity; // 0

规范

Specification
ECMAScript® 2026 Language Specification
# sec-multiplicative-operators

浏览器兼容性

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp