ECMAScript имеет два встроенных числовых типа: Number и BigInt. В этой спецификации каждый числовой тип T содержит мультипликативное значение идентичности, обозначенное T::unit. Типы спецификации также имеют следующие абстрактные операции, также обозначаемые T::op для данной операции с именем спецификации op. Все типы аргументов являются T. В столбце «Результат» отображается тип возвращаемого значения, а также указывается, могут ли некоторые вызовы операции возвращать внезапное завершение.
Краткое содержание призыва | Пример источника | Вызывается семантикой оценки … | Результат |
---|---|---|---|
T::unaryMinus(x) | -x | Унарный Оператор (—) | T |
T::bitwiseNOT(x) | ~x | Побитовый оператор НЕ (~) | T |
T::exponentiate(x, y) | x ** y | Оператор возведения в степень и Math.pow (основание, показатель степени) | T, может выбросить RangeError |
T::multiply(x, y) | x * y | Мультипликативные операторы | T |
T::divide(x, y) | x / y | Мультипликативные операторы | T, может выбросить RangeError |
T::remainder(x, y) | x % y | Мультипликативные операторы | T, может выбросить RangeError |
T::add(x, y) | x ++ ++ x x + y |
Оператор постфиксного приращения, оператор приращения префикса и оператор сложения (+) | T |
T::subtract(x, y) | x — — x x — y |
Постфиксный оператор декремента, префиксный оператор декремента и оператор вычитания (-) | T |
T::leftShift(x, y) | x << y | Оператор левого сдвига (<<) | T |
T::signedRightShift(x, y) | x >> y | Подписанный оператор сдвига вправо (>>) | T |
T::unsignedRightShift(x, y) | x >>> y | Оператор беззнакового сдвига вправо (>>>) | T, может вызвать TypeError |
T::lessThan(x, y) | x < y x > y x <= y x >= y |
Операторы отношения через абстрактное реляционное сравнение | Boolean или undefined (для неупорядоченных входов) |
T::equal(x, y) | x == y x != y x === y x !== y |
Операторы равенства через строгое сравнение равенства | Boolean |
T::sameValue(x, y) | Внутренние методы объекта через SameValue(x, y) для проверки точного равенства значений | Boolean | |
T::sameValueZero(x, y) | Методы Array, Map и Set через SameValueZero(x, y) для проверки равенства значений, игнорируя различия между членами нулевой когорты (т. е. -0𝔽 и +0𝔽) | Boolean | |
T::bitwiseAND(x, y) | x & y | Двоичные побитовые операторы | T |
T::bitwiseXOR(x, y) | x ^ y | Двоичные побитовые операторы | T |
T::bitwiseOR(x, y) | x | y | Двоичные побитовые операторы | T |
T::toString(x) | String(x) | Многие выражения и встроенные функции через ToString(argument) | String |
Таблица 2: Операции с числовыми типами
Информационные ссылки
Стандарт ECMAScript — Раздел «6.1.5.1 Well-Known Symbols» — https://tc39.es/ecma262/#sec-well-known-symbols