CoffeeScript - operatory i aliasy

Operatory CoffeeScript

Operator to symbol, który mówi kompilatorowi, aby wykonał określone funkcje matematyczne lub logiczne. Weźmy proste wyrażenie4 + 5 is equal to 9. Tutaj nazywa się 4 i 5operands a „+” nazywa się operator.

Operatory dostarczane przez CoffeeScript są takie same jak w JavaScript, z wyjątkiem kilku różnic. W JavaScript jest kilka problematycznych operatorów. CoffeeScript usunął je lub zmodyfikował ich funkcjonalność, a także wprowadził kilka nowych operatorów.

Poniżej znajduje się lista operatorów obsługiwanych przez CoffeeScript.

  • Operatory arytmetyczne
  • Operatory porównania
  • Operatory logiczne (lub relacyjne)
  • Operatory przypisania

Aliasy CoffeeScript

Oprócz operatorów CoffeeScript udostępnia również aliasy. CoffeeScript udostępnia aliasy dla różnych operatorów i symboli, aby kod CoffeeScript był czytelny i bardziej przyjazny dla użytkownika.

Przyjrzyjmy się kolejno wszystkim operatorom i aliasom CoffeeScript.

Operatory arytmetyczne

CoffeeScript obsługuje następujące operatory arytmetyczne. Przyjmij zmiennąA trzyma 10 i zmienne B trzyma 20, a następnie -

Pokaż przykłady

S.Nr Operator i opis Przykład
1

+ (Addition)

Dodaje dwa operandy

A + B = 30
2

− (Subtraction)

Odejmuje drugi operand od pierwszego

A - B = -10
3

* (Multiplication)

Pomnóż oba operandy

A * B = 200
4

/ (Division)

Podziel licznik przez mianownik

B / A = 2
5

% (Modulus)

Wyprowadza resztę z dzielenia liczb całkowitych

B% A = 0
6

++ (Increment)

Zwiększa wartość całkowitą o jeden

A ++ = 11
7

-- (Decrement)

Zmniejsza wartość całkowitą o jeden

A-- = 9

Operatory porównania

JavaScript obsługuje następujące operatory porównania. Przyjmij zmiennąA trzyma 10 i zmienne B trzyma 20, a następnie -

Pokaż przykłady

S.Nr Operator i opis Przykład
1

= = (Equal)

Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli tak, warunek staje się prawdziwy.

(A == B) nie jest prawdą.
2

!= (Not Equal)

Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli wartości nie są równe, wtedy warunek staje się prawdziwy.

(A! = B) jest prawdą.
3

> (Greater than)

Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu. Jeśli tak, warunek staje się prawdziwy.

(A> B) nie jest prawdą.
4

< (Less than)

Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu. Jeśli tak, warunek staje się prawdziwy.

(A <B) jest prawdą.
5

>= (Greater than or Equal to)

Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu. Jeśli tak, warunek staje się prawdziwy.

(A> = B) nie jest prawdą.
6

<= (Less than or Equal to)

Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu. Jeśli tak, warunek staje się prawdziwy.

(A <= B) jest prawdą.

W poniższej tabeli przedstawiono aliasy kilku operatorów porównania. PrzypuszczaćA trzyma 20 i zmienne B trzyma 20.

Pokaż przykłady

Operator Alias Przykład
= = (Równe) is A is B daje ci prawdę.
! = = (Nie równe) isnt A isnt B daje ci fałsz.

Operatory logiczne

CoffeeScript obsługuje następujące operatory logiczne. Przyjmij zmiennąA trzyma 10 i zmienne B trzyma 20, a następnie -

Pokaż przykłady

S.Nr Operator i opis Przykład
1

&& (Logical AND)

Jeśli oba operandy są niezerowe, warunek staje się prawdziwy.

(A && B) jest prawdą.
2

|| (Logical OR)

Jeśli którykolwiek z dwóch operandów jest niezerowy, warunek staje się prawdziwy.

(A || B) jest prawdą.
3

! (Logical NOT)

Odwraca stan logiczny swojego operandu. Jeśli warunek jest prawdziwy, operator logiczny NIE spowoduje, że będzie fałszywy.

! (A && B) jest fałszem.

W poniższej tabeli przedstawiono aliasy niektórych operatorów logicznych. PrzypuszczaćX trzyma true i zmienne Y trzyma false.

Pokaż przykłady

Operator Alias Przykład
&& (logiczne I) and X and Y daje ci fałsz
|| (Logiczne LUB) or X or Y daje ci prawdę
! (nie x) not not X daje ci fałsz

Operatory bitowe

CoffeeScript obsługuje następujące operatory bitowe. Przyjmij zmiennąA trzyma 2 i zmienne B trzyma 3, a następnie -

Pokaż przykłady

S.Nr Operator i opis Przykład
1

& (Bitwise AND)

Wykonuje operację logiczną AND na każdym bicie argumentów całkowitych.

(A i B) wynosi 2.
2

| (BitWise OR)

Wykonuje operację logiczną LUB na każdym bicie argumentów całkowitych.

(A | B) wynosi 3.
3

^ (Bitwise XOR)

Wykonuje logiczną operację OR na wyłączność na każdym bicie argumentów całkowitych. Wyłączne OR oznacza, że ​​albo operand pierwszy jest prawdziwy, albo operand drugi jest prawdziwy, ale nie oba.

(A ^ B) wynosi 1.
4

~ (Bitwise Not)

Jest operatorem jednoargumentowym i działa poprzez odwrócenie wszystkich bitów w operandzie.

(~ B) wynosi -4.
5

<< (Left Shift)

Przenosi wszystkie bity w pierwszym operandzie w lewo o liczbę miejsc określoną w drugim operandzie. Nowe bity są wypełnione zerami. Przesunięcie wartości w lewo o jedną pozycję jest równoznaczne z pomnożeniem jej przez 2, przesunięcie o dwie pozycje jest równoważne z pomnożeniem przez 4 i tak dalej.

(A << 1) to 4.
6

>> (Right Shift)

Binarny operator przesunięcia w prawo. Wartość lewego operandu jest przesuwana w prawo o liczbę bitów określoną przez prawy operand.

(A >> 1) wynosi 1.

Operatory przypisania

CoffeeScript obsługuje następujące operatory przypisania -

Pokaż przykłady

S.Nr Operator i opis Przykład
1

= (Simple Assignment )

Przypisuje wartości z prawego operandu do lewego operandu

C = A + B przypisze wartość A + B do C.
2

+= (Add and Assignment)

Dodaje prawy operand do lewego operandu i przypisuje wynik do lewego operandu.

C + = A jest równoważne C = C + A
3

-= (Subtract and Assignment)

Odejmuje prawy operand od lewego operandu i przypisuje wynik do lewego operandu.

C - = A jest równoważne C = C - A
4

*= (Multiply and Assignment)

Mnoży prawy operand przez lewy operand i przypisuje wynik lewemu operandowi.

C * = A jest równoważne C = C * A
5

/= (Divide and Assignment)

Dzieli lewy operand z prawym operandem i przypisuje wynik lewemu operandowi.

C / = A jest równoważne C = C / A
6

%= (Modules and Assignment)

Pobiera moduł używając dwóch operandów i przypisuje wynik do lewego operandu.

C% = A jest równoważne C = C% A

Note - Ta sama logika dotyczy operatorów bitowych, więc będą wyglądać jak << =, >> =, >> =, & =, | = i ^ =.

Operator równości w CoffeeScript

Podczas pracy z JavaScript napotkasz dwa typy operatorów równości == i ===.

Plik == operatorem w JavaScript jest type coercivetj. jeśli typy dwóch operandów w operacji są różne, wówczas typ danych jednego operatora jest konwertowany na inny, a następnie porównywane są oba.

CoffeeScript unika tego niepożądanego przymusu, kompiluje plik == operator do ścisłego operatora porównania JavaScript ===.

Jeśli porównamy dwa operandy za pomocą ===, a następnie wraca true, tylko jeśli zarówno wartość, jak i ich typy danych są równe, w przeciwnym razie zwraca false.

Przykład

Rozważmy następujący przykład. Tutaj mamy dwie zmiennea i b. a przechowuje wartość 21 typu całkowitego i b ma tę samą wartość, ale jest stringrodzaj. W CoffeeScript, kiedy porównujemya i b, wynik będzie false. (Ponieważ== operator CoffeeScript jest konwertowany na === operator JavaScript)

a=21
b="21"
result = 21=='21'
console.log result

Podczas kompilacji powyższy CoffeeScript tworzy następujący kod JavaScript

// Generated by CoffeeScript 1.10.0
(function() {
  var a, b, result;
  
  a = 21;
  
  b = "21";
  
  result = a === b;
  console.log(result);
}).call(this);

Podczas wykonywania generuje następujące dane wyjściowe.

false

Operator egzystencjalny

CoffeeScript udostępnia nowy operator, znany jako operator egzystencjalny, służący do weryfikacji istnienia zmiennej. Jest oznaczony?. O ile zmienna nie ma wartości null lub nie jest zdefiniowana, operator egzystencjalny zwraca prawdę.

Przykład

Poniżej podano przykład operatora egzystencjalnego. Tutaj mamy trzy zmienne, a mianowiciename, age, i subject i weryfikujemy istnienie zmiennych nazwa i telefon za pomocą operatora egzystencjalnego.

name="Ramu"
age=24
subject="Engineering"
verify_name = name?
verify_phone = phone?
console.log verify_name
console.log verify_phone

Podczas kompilacji wygeneruje to następujący kod 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);

Jeśli wykonamy powyższy plik CoffeeScript, wygeneruje on następujący wynik.

true
false

Note - Mamy wariant akcesora operatora egzystencjalnego ?. Możemy go użyć zamiast. operator, aby znaleźć zerowe odwołania.

Łańcuchowe porównania

Podobnie jak w Pythonie, w jednym wyrażeniu w CoffeeScript możemy użyć łańcucha operatorów porównania.

Przykład

Poniżej znajduje się przykład użycia porównania łańcuchowego.

score = 70
passed = 100 > score > 40

console.log passed

Podczas kompilacji przykład CoffeeScript podaje następujący kod JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var passed, score;

  score = 70;

  passed = (100 > score && score > 40);

  console.log(passed);

}).call(this);

Jeśli wykonasz powyższy kod CoffeeScript, wygeneruje on następujące dane wyjściowe.

true

Note- CoffeeScript usuwa operator trójskładnikowy; zamiast tego możemy użyćinline if komunikat.

Aliasy CoffeeScript

Ogólnie, CoffeeScript zapewnia aliasy dla różnych operatorów i symboli, aby kod CoffeeScript był czytelny i bardziej przyjazny dla użytkownika. Poniżej znajdują się aliasy dostarczone przez CoffeeScript.

Nazwa Operator / symbol Skróty
Operator „równa się” == jest
operator „nie równa się” ! == isnt
operator „nie” ! nie
operator „i” && i
operator „lub” || lub
wartość logiczna prawda prawdziwe prawda, tak, dalej
wartość logiczna fałsz fałszywy wyłączone, nie
aktualny obiekt to @
nowa linia (lub) średnik \ n lub; następnie
Odwrotność if ! Jeśli chyba że
Aby przetestować obecność tablicy w
Aby przetestować obecność obiektu z
Potęgowanie za**b
Dzielenie liczb całkowitych za//b
modulo zależne od dywidendy za%%b

Przykład

Poniższy przykład pokazuje, jak używać aliasów w 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

Kompilując powyższy przykład, daje następujący kod 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);

Jeśli wykonasz powyższy plik CoffeeScript, wygeneruje on następujący wynik -

true
false
false
true
true
true
5.842587018385982e+27
1
0