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 -

Mostrar exemplos

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 -

Mostrar exemplos

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.

Mostrar exemplos

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 -

Mostrar exemplos

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.

Mostrar exemplos

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 -

Mostrar exemplos

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 -

Mostrar exemplos

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