Арифметические операции

В языке поддерживается стандартный набор арифметических операций: сложение, вычитание, умножение, деление. Кроме того, поддерживаются операции возведения в степень, смены знака и получения остатка от деления. Применимость арифметических операций зависит от типов операндов:

  • Операция сложения: +. Операция применима для следующих типов:
    Операция Результат
    Число + Число Число
    Длительность + Длительность Длительность
    ДатаВремя + Длительность ДатаВремя
    Дата + Длительность Дата
    Время + Длительность Время
    Момент + Длительность Момент
    Строка + Объект Строка
    Строка + Неопределено Строка
    Здесь:
    • при операции вида Строка + Объект (конкатенации со строкой) объекты нестрокового типа неявно преобразуются в строку с помощью метода ВСтроку();
    • при операции вида Строка + Неопределено значение Неопределено преобразуется в строку "undefined".
  • Операция вычитания: -. Операция применима для следующих типов:

    Операция Результат
    Число - Число Число
    Длительность - Длительность Длительность
    ДатаВремя - Длительность ДатаВремя
    Дата - Длительность Дата
    Время - Длительность Время
    Момент - Длительность Момент
  • Операция умножения: *. Операция применима для следующих типов:

    Операция Результат
    Число * Число Число
    Длительность * Число Длительность
  • Операция деления: /. Операция применима для следующих типов:

    Операция Результат
    Число / Число Число
    Длительность / Число Длительность
  • Операция получения остатка от деления: %. Операция применима для следующих типов:

    Операция Результат
    Число % Число Число
  • Операция возведения в степень: **. Операция применима для следующих типов:

    Операция Результат
    Число ** Число Число
  • Операция изменения знака: - (унарный минус). Операция применима для следующих типов:

    Операция Результат
    - Число Число
    - Длительность Длительность

Приоритет операций

При вычислении арифметических выражений используется следующий приоритет вычисления (в порядке уменьшения приоритета):
  1. Выражения в круглых скобках.
  2. - (унарный минус).
  3. Операция **.
  4. Операции *, /, %.
  5. Операция +, -.