Оператор остатка от деления в JavaScript

В этом руководстве вы узнаете об операторе в JavaScript( % ), позволяющем получить остаток от деления числа на другое число.

Введение в оператор остатка JavaScript

JavaScript использует % для представления оператора остатка от деления. Оператор остатка возвращает остаток, оставшийся после деления одного значения на другое значение.

Вот синтаксис:

dividend % divisor

Ниже показано уравнение:

dividend = divisor * quotient + remainder where |remainder| < |divisor|

В этом уравнении dividend, divisor, quotient и remainder являются целыми числами. Знак remainder такой же, как и знак dividend.

Знак remainder такой же, как и знак dividend.

Примеры операций взятия остатка в JavaScript

Давайте рассмотрим несколько примеров использования.

1) Использование оператора остатка с положительным примером делимого

В следующем примере показано, как использовать с положительным делимым:

let remainder = 5 % -2; 
console.log(remainder); // 1 

remainder = 5 % 2; 
console.log(remainder); // 1

2)  С примером отрицательного делимого

В следующем примере используется оператор остатка с отрицательным делимым:

let remainder = -5 % 3; 
console.log(remainder); // -2 

remainder = -5 % -3; 
console.log(remainder); // -2

3) Специальные значения оператора остатка

Если делимое — это Infinity, а делитель — конечное число, остаток равен NaN. Например:

let remainder = Infinity % 2; 
console.log(remainder); // NaN

Если делимое является конечным числом, а делитель равен нулю, остаток равен NaN :

let remainder = 10 % 0; 
console.log(remainder); // NaN

Если и делимое, и делитель равны Infinity, остаток равен NaN :

let remainder = Infinity % Infinity; 
console.log(remainder); // NaN

Если делимое — конечное число, а делитель — Infinity, остаток — это делимое:

let remainder = 10 % Infinity; 
console.log(remainder); // 10

Если делимое равно нулю, а делитель отличен от нуля, остаток равен нулю:

let remainder = 0 % 10; 
console.log(remainder); // 0

Если делимое или делитель не являются числом, они преобразуются в число с помощью функции Number() и применяются указанные выше правила.

Пример:

let remainder = '10' % 3; 
console.log(remainder); // 1

Использование оператора остатка для проверки, является ли число нечетным

Чтобы проверить, является ли число нечетным, вы используете оператор остатка( % ), как в следующем примере:

let num = 13; 
let isOdd = num % 2;

В этом примере, если num является нечетным числом, остаток равен единице. Но если num четное, то остаток равен нулю.

Позже вы узнаете, как определить функцию, которая возвращает true, если число нечетное или false, в противном случае, например:

function isOdd(num) { 
 return num % 2; 
}

Или с помощью функции стрелки в ES6:

const isOdd =(num) => num % 2;

Разница между оператором остатка и оператором по модулю

В JavaScript оператор остатка(%) не является оператором по модулю.

Если вы работали с Python, вы можете обнаружить, что % представляет оператор по модулю в этом языке. Однако в JavaScript это не так.

Чтобы получить модуль в JavaScript, вы используете следующее выражение:

((dividend % divisor) + divisor) % divisor

Или оберните его в функцию:

const mod =(dividend, divisor) =>((dividend % divisor) + divisor) % divisor;

Если деление и делитель имеют одинаковый знак, операторы остатка и модуля возвращают одинаковый результат. В противном случае они возвращают разные результаты.

Например:

const mod =(dividend, divisor) =>((dividend % divisor) + divisor) % divisor; 
console.log('remainder:', 5 % 3); // 2 
console.log('modulo:', mod(5, 3)); // 2 // dividen and divisor have the different signs 
console.log('remainder:', -5 % 3); // -2 
console.log('modulo:', mod(-5, 3)); // 1

Выход:

remainder: 2 modulo: 2 remainder: -2 modulo: 1
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript