JavaScript | Мультипликативные операторы

JavaScript | Мультипликативные операторы

Мультипликативные операторы (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

 

Мультипликативное и Экспоненциальное выражения на переменных - JavaScript
Мультипликативное и Экспоненциальное выражения на переменных — JavaScript

 

Пример оператора деления /

Оператор / выполняет деление, производя частное своих операндов.

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