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