Мультипликативные операторы (Multiplicative Operators)
Синтаксис (Syntax)
MultiplicativeExpression[Yield, Await] :
ExponentiationExpression[?Yield, ?Await]
MultiplicativeExpression[?Yield, ?Await] MultiplicativeOperator ExponentiationExpression[?Yield, ?Await]
MultiplicativeOperator : один из
* / %
Оператор * выполняет умножение, производя произведение своих операндов.
Оператор / выполняет деление, производя частное своих операндов.
Оператор % возвращает остаток своих операндов от подразумеваемого деления.
Пример оператора умножения *
Оператор * выполняет умножение, производя произведение своих операндов.
2 * 5 10 // с экспоненциальным выражением справа 2 * 5 ** 3 250 // с экспоненциальным выражением слева 2 ** 5 * 3 96 3 * 4 * 5 60 // с экспоненциальным выражением внутри 3 * 4 ** 2 * 5 240
Экспоненциальное выражение имеет приоритет перед мультипликативным выражением. Как в математике.
var a = 1; var b = 2; var c = 3; var x = a ** c * b ** c;
В переменной x мы получим число 8
Пример оператора деления /
Оператор / выполняет деление, производя частное своих операндов.
10 / 2 5 48 / 2 / 3 8
Пример оператора остатка от деления %
Оператор % возвращает остаток своих операндов от подразумеваемого деления.
40 % 12
4
12 * 3 = 36; 40 - 36 = 4 (остаток от деления)
60 % 24 12 24 * 2 = 48; 60 - 48 = 12 (остаток от деления) 313 % 157 % 111 45 157 * 1 = 157; 313 - 157 = 156; 111 * 1 = 111; 156 - 111 = 45 (остаток от деления)
При помощи оператора % можно проверять кратность чисел. Например можно проверить является ли число 15 кратным 5?
15 % 5
5 * 3 = 15;
Остаток от деления равен нулю, а значит число 15 кратно 5.
Семантика времени выполнения: оценка
MultiplicativeExpression : MultiplicativeExpression MultiplicativeOperator ExponentiationExpression
1. Пусть opText будет исходным текстом, сопоставленным MultiplicativeOperator. 2. Вернуть ? EvaluateStringOrNumericBinaryExpression(MultiplicativeExpression, opText, ExponentiationExpression).
Вызов абстрактных операций и операций, управляемых синтаксисом, с префиксом значка вопроса ? указывают, что к результирующей Записи о Завершении следует применить ReturnIfAbrupt.
Информационные ссылки
JavaScript | Алгоритмические обозначения
JavaScript | Условные обозначения
Стандарт ECMAScript — Раздел «13.7 Multiplicative Operators» — https://tc39.es/ecma262/#sec-multiplicative-operators