TypeScript - Operadores
O que é um operador?
Um operador define alguma função que será executada nos dados. Os dados com os quais os operadores trabalham são chamados de operandos. Considere a seguinte expressão -
7 + 5 = 12
Aqui, os valores 7, 5 e 12 são operands, enquanto + e = são operators.
Os principais operadores em TypeScript podem ser classificados como -
- Operadores aritméticos
- Operadores lógicos
- Operadores relacionais
- Operadores bit a bit
- Operadores de atribuição
- Operador ternário / condicional
- Operador string
- Operador de tipo
Operadores aritméticos
Suponha que os valores nas variáveis aeb são 10 e 5, respectivamente.
Operador | Descrição | Exemplo |
---|---|---|
+ (Adição) | retorna a soma dos operandos | a + b é 15 |
- (Subtração) | retorna a diferença dos valores | a - b é 5 |
* (Multiplicação) | retorna o produto dos valores | a * b é 50 |
/ (Divisão) | executa a operação de divisão e retorna o quociente | a / b é 2 |
% (Módulo) | executa a operação de divisão e retorna o resto | a% b é 0 |
++ (incremento) | Aumenta o valor da variável em um | a ++ é 11 |
- (diminuir) | Diminui o valor da variável em um | a-- é 9 |
Operadores Relacionais
Operadores relacionais testam ou definem o tipo de relacionamento entre duas entidades. Os operadores relacionais retornam um valor booleano, ou seja, verdadeiro / falso.
Suponha que o valor de A seja 10 e B seja 20.
Operador | Descrição | Exemplo |
---|---|---|
> | Maior que | (A> B) é falso |
< | Menos do que | (A <B) é verdadeiro |
> = | Melhor que ou igual a | (A> = B) é falso |
<= | Menor ou igual a | (A <= B) é verdadeiro |
== | Igualdade | (A == B) é falso |
! = | Não igual | (A! = B) é verdadeiro |
Operadores lógicos
Operadores lógicos são usados para combinar duas ou mais condições. Os operadores lógicos também retornam um valor booleano. Suponha que o valor da variável A seja 10 e B seja 20.
Operador | Descrição | Exemplo |
---|---|---|
&& (e) | O operador retorna verdadeiro apenas se todas as expressões especificadas retornarem verdadeiro | (A> 10 && B> 10) é False |
|| (OU) | O operador retorna verdadeiro se pelo menos uma das expressões especificadas retornar verdadeiro | (A> 10 || B> 10) é verdadeiro |
! (NÃO) | O operador retorna o inverso do resultado da expressão. Por exemplo:! (> 5) retorna falso | ! (A> 10) é verdadeiro |
Operadores bit a bit
Suponha que a variável A = 2 e B = 3
Operador | Descrição | Exemplo |
---|---|---|
& (Bit a bit AND) | Ele executa uma operação booleana AND em cada bit de seus argumentos inteiros. | (A e B) é 2 |
| (BitWise OU) | Ele executa uma operação booleana OR em cada bit de seus argumentos inteiros. | (A | B) é 3 |
^ (XOR bit a bit) | 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 |
~ (Bit a bit não) | É um operador unário e opera invertendo todos os bits do operando. | (~ B) é -4 |
<< (Shift à esquerda) | 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 |
>> (Shift à direita) | 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 |
>>> (deslocamento à direita com zero) | Esse operador é como o operador >>, exceto que os bits deslocados à esquerda são sempre zero. | (A >>> 1) é 1 |
Operadores de atribuição
Operador | Descrição | Exemplo |
---|---|---|
= (Atribuição Simples) | 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 |
+ = (Adicionar e Atribuição) | Ele adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo. | C + = A é equivalente a C = C + A |
- = (Subtrair e Atribuição) | Ele subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo. | C - = A é equivalente a C = C - A |
* = (Multiplique e Atribuição) | Ele multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo. | C * = A é equivalente a C = C * A |
/ = (Divisão e Atribuição) | Ele divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo. |
Note - A mesma lógica se aplica aos operadores bit a bit, então eles se tornarão << =, >> =, >> =, & =, | = e ^ =.
Operadores diversos
O operador de negação (-)
Muda o sinal de um valor. Vamos dar um exemplo.
var x:number = 4
var y = -x;
console.log("value of x: ",x); //outputs 4
console.log("value of y: ",y); //outputs -4
Na compilação, ele irá gerar o seguinte código JavaScript.
//Generated by typescript 1.8.10
var x = 4;
var y = -x;
console.log("value of x: ", x); //outputs 4
console.log("value of y: ", y); //outputs -4
Ele produzirá a seguinte saída -
value of x: 4
value of y: -4
Operadores de string: operador de concatenação (+)
O operador +, quando aplicado a strings, acrescenta a segunda string à primeira. O exemplo a seguir nos ajuda a entender esse conceito.
var msg:string = "hello"+"world"
console.log(msg)
Na compilação, ele irá gerar o seguinte código JavaScript.
//Generated by typescript 1.8.10
var msg = "hello" + "world";
console.log(msg);
Ele produzirá a seguinte saída -
helloworld
A operação de concatenação não adiciona um espaço entre as strings. Várias strings podem ser concatenadas em uma única instrução.
Operador condicional (?)
Este operador é usado para representar uma expressão condicional. O operador condicional às vezes também é chamado de operador ternário. A sintaxe é a seguinte -
Test ? expr1 : expr2
Test - refere-se à expressão condicional
expr1 - valor retornado se a condição for verdadeira
expr2 - valor retornado se a condição for falsa
Vamos dar uma olhada no seguinte código -
var num:number = -2
var result = num > 0 ?"positive":"non-positive"
console.log(result)
A linha 2 verifica se o valor na variável numé maior que zero. E senum é definido com um valor maior que zero, ele retorna a string “positiva”, caso contrário, a string “não positiva” é retornada.
Na compilação, ele irá gerar o seguinte código JavaScript.
//Generated by typescript 1.8.10
var num = -2;
var result = num > 0 ? "positive" : "non-positive";
console.log(result);
O snippet de código acima produzirá a seguinte saída -
non-positive
Operadores de tipo
operador typeof
É um operador unário. Este operador retorna o tipo de dados do operando. Dê uma olhada no seguinte exemplo -
var num = 12
console.log(typeof num); //output: number
Na compilação, ele irá gerar o seguinte código JavaScript.
//Generated by typescript 1.8.10
var num = 12;
console.log(typeof num); //output: number
Ele produzirá a seguinte saída -
number
instancia de
Este operador pode ser usado para testar se um objeto é de um tipo especificado ou não. O uso deinstanceof operador é discutido no capítulo classes.