Что делает% в JavaScript?
Определение того, что это такое и что он делает, будет очень оценено.
Что делает% в JavaScript?
Определение того, что это такое и что он делает, будет очень оценено.
Это оператор modulo. Смотрите документация или спецификация для получения дополнительной информации об арифметических операциях JavaScript.
% (модуль)
Оператор модуля используется следующим образом:
var1% var2
Оператор модуля возвращает первый операнд по модулю второго операнд, то есть var1 modulo var2, в предыдущем утверждении, где var1 и var2 - переменные. Функция modulo является целым числом остаток деления var1 на var2. Например, 12% 5 возвращает 2. результат будет иметь тот же знак, что и var1; то есть -1% 2 возвращает -1.
Он возвращает оставшуюся часть операции деления. 5%2
возвращает 1
Обновление ES6:
Как объясняется в других ответах, он возвращает остаток после деления дивиденда на делитель, однако это уже не оператор modulo, это оператор остатка. различие заключается в том, что результат по модулю оператора будет принимать знак дивизора, а не дивиденд. Цитируется из MDN
Оператор остатка возвращает оставшийся остаток, когда один операнд делится на второй операнд. Он всегда принимает знак дивиденда, а не делитель. Он использует встроенную функцию modulo для получения результата, который является целым остатком деления
var1
наvar2
- например -var1 modulo var2
. Есть предложение получить фактический modulo-оператор в будущей версии ECMAScript, причем разница в том, что результат оператора modulo примет знак делителя, а не дивиденд.
Пример:
-10 % 3 // -1
10 % -3 // 1
Это будет оператор modulo.
Он возвращает оставшуюся часть операции деления:
var remainder = 3 % 2; // equals 1
Это по модулю оператор.
Он вычисляет остаток.
Если мы делаем 23% 10,
во-первых, мы разделим 23 на 10, что равно 2.3. то возьмем .3 * (делитель) 10
= 3
Оператор модуля (%) возвращает остаток.
Если любое значение является строкой, делается попытка преобразовать строку в число.
alert(5%3)
будет предупреждать 2
На всякий случай, если кто-то ищет реальную функцию modulo (которая всегда будет получать знак дивизора), вы можете использовать это:
function Modulo(num, denom)
{
if (num%denom >= 0)
{
return Math.abs(num%denom);
}
else
{
return num%denom + denom;
}
}
Math.abs должен предотвратить случай -12% 12 → -0, который считается равным 0, но отображается как -0.
% выполняет роль оператора modulo, возвращает напоминание о начале. Пример:
<script>
var x = 5;
var y = 2;
var z = x % y;
alert(z);
</script>
Это будет предупреждать 1.