CoffeeScript - Operadores e Aliases
Operadores CoffeeScript
Um operador é um símbolo que informa ao compilador para executar funções matemáticas ou lógicas específicas. Vamos dar uma expressão simples4 + 5 is equal to 9. Aqui 4 e 5 são chamadosoperands e '+' é chamado de operator.
Os operadores fornecidos pelo CoffeeScript são iguais aos do JavaScript, exceto por algumas diferenças. Existem alguns operadores problemáticos em JavaScript. CoffeeScript os removeu ou modificou sua funcionalidade e também introduziu alguns novos operadores.
A seguir está a lista de operadores suportados pelo CoffeeScript.
- Operadores aritméticos
- Operadores de comparação
- Operadores lógicos (ou relacionais)
- Operadores de atribuição
CoffeeScript Aliases
Além de operadores, CoffeeScript também fornece aliases. CoffeeScript fornece apelidos para vários operadores e símbolos para tornar seu código CoffeeScript legível e mais amigável.
Vamos dar uma olhada em todos os operadores e apelidos de CoffeeScript, um por um.
Operadores aritméticos
CoffeeScript suporta os seguintes operadores aritméticos. Assumir variávelA detém 10 e variável B detém 20, então -
S.Não | Operador e descrição | Exemplo |
---|---|---|
1 | + (Addition) Adiciona dois operandos |
A + B = 30 |
2 | − (Subtraction) Subtrai o segundo operando do primeiro |
A - B = -10 |
3 | * (Multiplication) Multiplique os dois operandos |
A * B = 200 |
4 | / (Division) Divida o numerador pelo denominador |
B / A = 2 |
5 | % (Modulus) Produz o resto de uma divisão inteira |
B% A = 0 |
6 | ++ (Increment) Aumenta um valor inteiro em um |
A ++ = 11 |
7 | -- (Decrement) Diminui um valor inteiro em um |
A-- = 9 |
Operadores de comparação
JavaScript oferece suporte aos seguintes operadores de comparação. Assumir variávelA detém 10 e variável B detém 20, então -
S.Não | Operador e descrição | Exemplo |
---|---|---|
1 | = = (Equal) Verifica se os valores dos dois operandos são iguais ou não, caso positivo a condição torna-se verdadeira. |
(A == B) não é verdade. |
2 | != (Not Equal) Verifica se o valor de dois operandos são iguais ou não, se os valores não são iguais, a condição torna-se verdadeira. |
(A! = B) é verdade. |
3 | > (Greater than) Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim, a condição torna-se verdadeira. |
(A> B) não é verdade. |
4 | < (Less than) Verifica se o valor do operando esquerdo é menor que o valor do operando direito, se sim, a condição se torna verdadeira. |
(A <B) é verdade. |
5 | >= (Greater than or Equal to) Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim, a condição se torna verdadeira. |
(A> = B) não é verdade. |
6 | <= (Less than or Equal to) Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim, a condição se torna verdadeira. |
(A <= B) é verdadeiro. |
A tabela a seguir mostra os aliases para alguns dos operadores de comparação. SuponhaA detém 20 e variável B detém 20.
Operador | Pseudônimo | Exemplo |
---|---|---|
= = (Igual) | is | A is B te dá verdade. |
! = = (Diferente) | isnt | A isnt B dá falso. |
Operadores lógicos
CoffeeScript suporta os seguintes operadores lógicos. Assumir variávelA detém 10 e variável B detém 20, então -
S.Não | Operador e descrição | Exemplo |
---|---|---|
1 | && (Logical AND) Se ambos os operandos forem diferentes de zero, a condição se torna verdadeira. |
(A && B) é verdade. |
2 | || (Logical OR) Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. |
(A || B) é verdade. |
3 | ! (Logical NOT) Reverte o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT a tornará falsa. |
! (A && B) é falso. |
A tabela a seguir mostra os aliases para alguns dos operadores lógicos. SuponhaX detém true e variável Y detém false.
Operador | Pseudônimo | Exemplo |
---|---|---|
&& (E lógico) | and | X and Y te dá falso |
|| (OU lógico) | or | X or Y te dá verdade |
! (não x) | not | not X te dá falso |
Operadores bit a bit
CoffeeScript oferece suporte aos seguintes operadores bit a bit. Assumir variávelA detém 2 e variável B detém 3, então -
S.Não | Operador e descrição | Exemplo |
---|---|---|
1 | & (Bitwise AND) Ele executa uma operação booleana AND em cada bit de seus argumentos inteiros. |
(A e B) é 2. |
2 | | (BitWise OR) Ele executa uma operação booleana OR em cada bit de seus argumentos inteiros. |
(A | B) é 3. |
3 | ^ (Bitwise XOR) Ele executa uma operação booleana OU exclusiva em cada bit de seus argumentos inteiros. OU exclusivo significa que o operando um é verdadeiro ou o operando dois é verdadeiro, mas não ambos. |
(A ^ B) é 1. |
4 | ~ (Bitwise Not) É um operador unário e opera invertendo todos os bits do operando. |
(~ B) é -4. |
5 | << (Left Shift) Ele move todos os bits em seu primeiro operando para a esquerda pelo número de casas especificado no segundo operando. Novos bits são preenchidos com zeros. Deslocar um valor para a esquerda em uma posição é equivalente a multiplicá-lo por 2, deslocar duas posições é equivalente a multiplicar por 4 e assim por diante. |
(A << 1) é 4. |
6 | >> (Right Shift) Operador binário de deslocamento à direita. O valor do operando esquerdo é movido para a direita pelo número de bits especificado pelo operando direito. |
(A >> 1) é 1. |
Operadores de atribuição
CoffeeScript suporta os seguintes operadores de atribuição -
S.Não | Operador e descrição | Exemplo |
---|---|---|
1 | = (Simple Assignment ) Atribui valores do operando do lado direito para o operando do lado esquerdo |
C = A + B irá atribuir o valor de A + B em C |
2 | += (Add and Assignment) Ele adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo. |
C + = A é equivalente a C = C + A |
3 | -= (Subtract and Assignment) Ele subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo. |
C - = A é equivalente a C = C - A |
4 | *= (Multiply and Assignment) Ele multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo. |
C * = A é equivalente a C = C * A |
5 | /= (Divide and Assignment) Ele divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo. |
C / = A é equivalente a C = C / A |
6 | %= (Modules and Assignment) Leva o módulo usando dois operandos e atribui o resultado ao operando esquerdo. |
C% = A é equivalente a C = C% A |
Note - A mesma lógica se aplica aos operadores bit a bit, então eles se tornarão como << =, >> =, >> =, & =, | = e ^ =.
Operador de igualdade em CoffeeScript
Ao trabalhar com JavaScript, você encontrará dois tipos de operadores de igualdade == e ===.
o == operador em JavaScript é type coercive, ou seja, se os tipos dos dois operandos em uma operação forem diferentes, o tipo de dados de um dos operadores é convertido em outro e, em seguida, ambos são comparados.
CoffeeScript evita essa coerção indesejável, ele compila o == operador para o operador de comparação estrita de JavaScript ===.
Se compararmos dois operandos usando ===, então ele retorna true, apenas se o valor e os tipos de dados deles forem iguais, caso contrário, ele retorna false.
Exemplo
Considere o seguinte exemplo. Aqui temos duas variáveisa e b. a contém o valor 21 do tipo inteiro e b tem o mesmo valor, mas é de stringtipo. No CoffeeScript, quando comparamosa e b, o resultado será false. (Desde o== operador de CoffeeScript é convertido para === operador de JavaScript)
a=21
b="21"
result = 21=='21'
console.log result
Na compilação, o CoffeeScript acima produz o seguinte JavaScript
// Generated by CoffeeScript 1.10.0
(function() {
var a, b, result;
a = 21;
b = "21";
result = a === b;
console.log(result);
}).call(this);
Na execução, ele produz a seguinte saída.
false
O Operador existencial
CoffeeScript fornece um novo operador conhecido como operador existencial para verificar a existência de uma variável. É denotado por?. A menos que uma variável seja nula ou indefinida, o operador existencial retorna verdadeiro.
Exemplo
Dada a seguir é um exemplo do operador existencial. Aqui temos três variáveis, a sabername, age, e subject e estamos verificando a existência das variáveis nome e fone por meio de operador existencial.
name="Ramu"
age=24
subject="Engineering"
verify_name = name?
verify_phone = phone?
console.log verify_name
console.log verify_phone
Na compilação, isso irá gerar o seguinte código 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);
Se executarmos o arquivo CoffeeScript acima, ele produzirá a seguinte saída.
true
false
Note - Temos uma variante acessora do operador existencial ?. Podemos usá-lo em vez do. operador para descobrir as referências nulas.
Comparações encadeadas
Como em Python, podemos usar uma cadeia de operadores de comparação em uma única expressão no CoffeeScript.
Exemplo
A seguir está um exemplo do uso de comparação encadeada.
score = 70
passed = 100 > score > 40
console.log passed
Na compilação, o exemplo CoffeeScript fornece o seguinte código JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var passed, score;
score = 70;
passed = (100 > score && score > 40);
console.log(passed);
}).call(this);
Se você executar o código CoffeeScript acima, ele produzirá a seguinte saída.
true
Note- CoffeeScript remove o operador ternário; em vez disso, podemos usar oinline if declaração.
CoffeeScript Aliases
Em geral, CoffeeScript fornece aliases para vários operadores e símbolos para tornar seu código CoffeeScript legível e mais amigável. A seguir estão os aliases fornecidos pelo CoffeeScript.
Nome | Operador / símbolo | Apelido |
---|---|---|
operador "igual a" | == | é |
operador "não é igual a" | ! == | não é |
operador "não" | ! | não |
operador "e" | && | e |
operador "ou" | || | ou |
valor booleano verdadeiro | verdadeiro | verdade, sim, em |
valor booleano falso | falso | fora, não |
objeto atual | isto | @ |
nova linha (ou) ponto e vírgula | \ n ou; | então |
Inverso de se | ! E se | a menos que |
Para testar a presença da matriz | no | |
Para testar a presença de objetos | do | |
Exponenciação | uma**b | |
Divisão inteira | uma//b | |
módulo dependente de dividendos | uma%%b |
Exemplo
O exemplo a seguir mostra como usar aliases no 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
Ao compilar o exemplo acima, ele fornece o seguinte código 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);
Se você executar o arquivo CoffeeScript acima, ele produzirá a seguinte saída -
true
false
false
true
true
true
5.842587018385982e+27
1
0