Оператор — это символ, который указывает компилятору выполнять определенные математические или логические функции. Возьмем простое выражение 4 + 5, равное 9 . Здесь 4 и 5 называются операндами, а «+» называется оператором .
Операторы, предоставляемые CoffeeScript, такие же, как и в JavaScript, за исключением нескольких различий. В JavaScript есть несколько проблемных операторов. CoffeeScript либо удалил их, либо изменил их функциональность, а также ввел несколько новых операторов.
Ниже приведен список операторов, поддерживаемых CoffeeScript.
- Арифметические Операторы
- Операторы сравнения
- Логические (или реляционные) операторы
- Операторы присваивания
CoffeeScript Псевдонимы
В дополнение к операторам CoffeeScript также предоставляет псевдонимы. CoffeeScript предоставляет псевдонимы различным операторам и символам, чтобы сделать ваш код CoffeeScript читабельным и более удобным для пользователя.
Давайте посмотрим на все операторы и псевдонимы CoffeeScript один за другим.
Арифметические Операторы
CoffeeScript поддерживает следующие арифметические операторы. Предположим, что переменная A содержит 10, а переменная B содержит 20 , тогда —
S.No | Оператор и описание | пример |
---|---|---|
1 |
+ (Дополнение) Добавляет два операнда |
А + В = 30 |
2 |
— (вычитание) Вычитает второй операнд из первого |
A — B = -10 |
3 |
* (Умножение) Умножьте оба операнда |
A * B = 200 |
4 |
/ (Отдел) Разделите числитель на знаменатель |
B / A = 2 |
5 |
% (Модуль) Выводит остаток от целочисленного деления |
B% A = 0 |
6 |
++ (Увеличение) Увеличивает целочисленное значение на единицу |
А ++ = 11 |
7 |
— (Уменьшение) Уменьшает целочисленное значение на единицу |
A— = 9 |
+ (Дополнение)
Добавляет два операнда
— (вычитание)
Вычитает второй операнд из первого
* (Умножение)
Умножьте оба операнда
/ (Отдел)
Разделите числитель на знаменатель
% (Модуль)
Выводит остаток от целочисленного деления
++ (Увеличение)
Увеличивает целочисленное значение на единицу
— (Уменьшение)
Уменьшает целочисленное значение на единицу
Операторы сравнения
JavaScript поддерживает следующие операторы сравнения. Предположим, что переменная A содержит 10, а переменная B содержит 20 , тогда —
S.No | Оператор и описание | пример |
---|---|---|
1 |
= = (Равен) Проверяет, равны ли значения двух операндов или нет, если да, то условие становится истинным. |
(A == B) не соответствует действительности. |
2 |
! = (Не равно) Проверяет, равны ли значения двух операндов или нет, если значения не равны, то условие становится истинным. |
(A! = B) верно. |
3 |
> (Больше чем) Проверяет, больше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным. |
(A> B) не соответствует действительности. |
4 |
<(Меньше чем) Проверяет, меньше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным. |
(A <B) верно. |
5 |
> = (Больше или равно) Проверяет, больше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным. |
(A> = B) не соответствует действительности. |
6 |
<= (Меньше или равно) Проверяет, меньше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным. |
(A <= B) верно. |
= = (Равен)
Проверяет, равны ли значения двух операндов или нет, если да, то условие становится истинным.
! = (Не равно)
Проверяет, равны ли значения двух операндов или нет, если значения не равны, то условие становится истинным.
> (Больше чем)
Проверяет, больше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным.
<(Меньше чем)
Проверяет, меньше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным.
> = (Больше или равно)
Проверяет, больше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным.
<= (Меньше или равно)
Проверяет, меньше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным.
В следующей таблице приведены псевдонимы для нескольких операторов сравнения. Предположим, что A содержит 20, а переменная B содержит 20 .
оператор | кличка | пример |
---|---|---|
= = (Равен) | является | А это Б дает вам правду. |
! = = (Не равно) | разве | А не Б дает вам ложь. |
Логические Операторы
CoffeeScript поддерживает следующие логические операторы. Предположим, что переменная A содержит 10, а переменная B содержит 20 , тогда —
S.No | Оператор и описание | пример |
---|---|---|
1 |
&& (логическое И) Если оба операнда отличны от нуля, условие становится истинным. |
(A && B) верно. |
2 |
|| (Логическое ИЛИ) Если любой из двух операндов отличен от нуля, условие становится истинным. |
(A || B) верно. |
3 |
! (Логически НЕ) Меняет логическое состояние своего операнда. Если условие истинно, то оператор Logical NOT сделает его ложным. |
! (A && B) неверно. |
&& (логическое И)
Если оба операнда отличны от нуля, условие становится истинным.
|| (Логическое ИЛИ)
Если любой из двух операндов отличен от нуля, условие становится истинным.
! (Логически НЕ)
Меняет логическое состояние своего операнда. Если условие истинно, то оператор Logical NOT сделает его ложным.
В следующей таблице приведены псевдонимы для некоторых логических операторов. Предположим, что X истинно, а переменная Y ложно .
оператор | кличка | пример |
---|---|---|
&& (логическое И) | а также | X и Y дает вам ложь |
|| (Логическое ИЛИ) | или же | X или Y дает вам правду |
! (не х) | не | не X дает вам ложь |
Битовые операторы
CoffeeScript поддерживает следующие побитовые операторы. Предположим, что переменная A содержит 2, а переменная B содержит 3 , тогда —
S.No | Оператор и описание | пример |
---|---|---|
1 |
& (Побитовое И) Он выполняет логическую операцию И над каждым битом своих целочисленных аргументов. |
(A & B) равно 2. |
2 |
| (BitWise ИЛИ) Он выполняет логическую операцию ИЛИ для каждого бита своих целочисленных аргументов. |
(A | B) равно 3. |
3 |
^ (Побитовый XOR) Он выполняет логическую исключающую операцию ИЛИ для каждого бита своих целочисленных аргументов. Исключающее ИЛИ означает, что либо операнд один является истинным, либо операнд два является истинным, но не оба. |
(A ^ B) равно 1. |
4 |
~ (Поразрядно нет) Это унарный оператор, действующий путем обращения всех битов в операнде. |
(~ B) -4. |
5 |
<< (Сдвиг влево) Он перемещает все биты в своем первом операнде влево на количество мест, указанное во втором операнде. Новые биты заполнены нулями. Смещение значения влево на одну позицию эквивалентно умножению его на 2, смещение двух позиций эквивалентно умножению на 4 и так далее. |
(A << 1) равно 4. |
6 |
>> (Сдвиг вправо) Оператор двоичного правого сдвига. Значение левого операнда перемещается вправо на количество битов, указанное правым операндом. |
(A >> 1) равно 1. |
& (Побитовое И)
Он выполняет логическую операцию И над каждым битом своих целочисленных аргументов.
| (BitWise ИЛИ)
Он выполняет логическую операцию ИЛИ для каждого бита своих целочисленных аргументов.
^ (Побитовый XOR)
Он выполняет логическую исключающую операцию ИЛИ для каждого бита своих целочисленных аргументов. Исключающее ИЛИ означает, что либо операнд один является истинным, либо операнд два является истинным, но не оба.
~ (Поразрядно нет)
Это унарный оператор, действующий путем обращения всех битов в операнде.
<< (Сдвиг влево)
Он перемещает все биты в своем первом операнде влево на количество мест, указанное во втором операнде. Новые биты заполнены нулями. Смещение значения влево на одну позицию эквивалентно умножению его на 2, смещение двух позиций эквивалентно умножению на 4 и так далее.
>> (Сдвиг вправо)
Оператор двоичного правого сдвига. Значение левого операнда перемещается вправо на количество битов, указанное правым операндом.
Операторы присваивания
CoffeeScript поддерживает следующие операторы присваивания —
S.No | Оператор и описание | пример |
---|---|---|
1 |
= (Простое назначение) Назначает значения от правого операнда к левому операнду |
C = A + B назначит значение A + B в C |
2 |
+ = (Добавить и назначить) Он добавляет правый операнд к левому операнду и присваивает результат левому операнду. |
C + = A эквивалентно C = C + A |
3 |
— = (Вычесть и присвоить) Он вычитает правый операнд из левого операнда и присваивает результат левому операнду. |
C — = A эквивалентно C = C — A |
4 |
* = (Умножение и назначение) Он умножает правый операнд на левый операнд и присваивает результат левому операнду. |
C * = A эквивалентно C = C * A |
5 |
/ = (Разделить и Назначение) Он делит левый операнд на правый операнд и присваивает результат левому операнду. |
C / = A эквивалентно C = C / A |
6 |
% = (Модули и Назначение) Он принимает модуль с использованием двух операндов и присваивает результат левому операнду. |
C% = A эквивалентно C = C% A |
= (Простое назначение)
Назначает значения от правого операнда к левому операнду
+ = (Добавить и назначить)
Он добавляет правый операнд к левому операнду и присваивает результат левому операнду.
— = (Вычесть и присвоить)
Он вычитает правый операнд из левого операнда и присваивает результат левому операнду.
* = (Умножение и назначение)
Он умножает правый операнд на левый операнд и присваивает результат левому операнду.
/ = (Разделить и Назначение)
Он делит левый операнд на правый операнд и присваивает результат левому операнду.
% = (Модули и Назначение)
Он принимает модуль с использованием двух операндов и присваивает результат левому операнду.
Примечание. Та же логика применяется к побитовым операторам, поэтому они будут иметь вид << =, >> =, >> =, & =, | = и ^ =.
Оператор равенства в CoffeeScript
При работе с JavaScript вы встретите два типа операторов равенства == и === .
Оператор == в JavaScript является принудительным по типу , т. Е. Если типы двух операндов в операции различны, то тип данных одного оператора преобразуется в другой, а затем сравниваются оба.
CoffeeScript избегает этого нежелательного принуждения, он компилирует оператор == в оператор строгого сравнения JavaScript === .
Если мы сравниваем два операнда, используя === , то он возвращает true , только если оба значения и типы данных равны, иначе он возвращает false .
пример
Рассмотрим следующий пример. Здесь у нас есть две переменные a и b . a содержит значение 21 целочисленного типа, а b содержит то же значение, но строкового типа. В CoffeeScript, когда мы сравниваем a и b , результат будет ложным . (Поскольку оператор CoffeeScript == преобразуется в оператор JavaScript === )
a=21 b="21" result = 21=='21' console.log result
При компиляции вышеупомянутый CoffeeScript производит следующий JavaScript
// Generated by CoffeeScript 1.10.0 (function() { var a, b, result; a = 21; b = "21"; result = a === b; console.log(result); }).call(this);
При выполнении он производит следующий вывод.
false
Экзистенциальный оператор
CoffeeScript предоставляет новый оператор, известный как экзистенциальный оператор, для проверки существования переменной. Это обозначается ? , Если переменная не равна нулю или не определена, экзистенциальный оператор возвращает true.
пример
Ниже приведен пример экзистенциального оператора. Здесь у нас есть три переменные, а именно имя, возраст и тема, и мы проверяем существование переменных имя и телефон с помощью экзистенциального оператора.
name="Ramu" age=24 subject="Engineering" verify_name = name? verify_phone = phone? console.log verify_name console.log verify_phone
При компиляции это сгенерирует следующий код JavaScript.
// Generated by CoffeeScript 1.10.0 (function() { var age, name, subject, verify_name, verify_phone; name = "Ramu"; age = 24; subject = "Engineering"; verify_name = name != null; verify_phone = typeof phone !== "undefined" && phone !== null; console.log(verify_name); console.log(verify_phone); }).call(this);
Если мы выполним вышеуказанный файл CoffeeScript, он выдаст следующий вывод.
true false
Примечание. У нас есть вариант доступа к экзистенциальному оператору ? , Мы можем использовать его вместо. Оператор, чтобы узнать нулевые ссылки.
Цепные сравнения
Как и в Python, мы можем использовать цепочку операторов сравнения в одном выражении в CoffeeScript.
пример
Ниже приведен пример использования цепного сравнения.
score = 70 passed = 100 > score > 40 console.log passed
При компиляции пример CoffeeScript дает вам следующий код JavaScript.
// Generated by CoffeeScript 1.10.0 (function() { var passed, score; score = 70; passed = (100 > score && score > 40); console.log(passed); }).call(this);
Если вы выполните приведенный выше код CoffeeScript, он выдаст следующий вывод.
true
Примечание. CoffeeScript удаляет троичный оператор; вместо этого мы можем использовать встроенный оператор if .
CoffeeScript Псевдонимы
В общем, CoffeeScript предоставляет псевдонимы различным операторам и символам, чтобы сделать ваш код CoffeeScript читабельным и более удобным для пользователя. Ниже приведены псевдонимы, предоставляемые CoffeeScript.
название | Оператор / символ | Псевдонимы |
---|---|---|
оператор «равно» | == | является |
оператор «не равно» | ==! | разве |
оператор «не» | ! | не |
оператор «и» | && | а также |
оператор «или» | || | или же |
логическое значение true | правда | правда да |
логическое значение false | ложный | нет, нет |
текущий объект | этот | @ |
новая строка (или) точка с запятой | \ n или; | затем |
Обратное если | ! если | если |
Чтобы проверить наличие массива | в | |
Проверить наличие объекта | из | |
Возведение | а ** б | |
Целочисленное деление | а // б | |
зависимый от дивидендов по модулю | %% b |
пример
В следующем примере показано, как использовать псевдонимы в CoffeeScript.
a=21; b=21 x = true; y = false console.log a is b console.log a isnt b console.log x and y console.log x or y console.log yes or no console.log on or off console.log a**b console.log a//b console.log a%%b
При компиляции приведенного выше примера он дает следующий код JavaScript.
// Generated by CoffeeScript 1.10.0 (function() { var a, b, x, y, modulo = function(a, b) { return (+a % (b = +b) + b) % b; }; a = 21; b = 21; x = true; y = false; console.log(a === b); console.log(a !== b); console.log(x && y); console.log(x || y); console.log(true || false); console.log(true || false); console.log(Math.pow(a, b)); console.log(Math.floor(a / b)); console.log(modulo(a, b)); }).call(this);
Если вы выполните приведенный выше файл CoffeeScript, он выдаст следующий вывод: