ES6 - Operadores
A expressioné um tipo especial de declaração que avalia um valor. Cada expressão é composta por -
Operands - Representa os dados.
Operator - Define como os operandos serão processados para produzir um valor.
Considere a seguinte expressão - 2 + 3. Aqui na expressão, 2 e 3 são operandos e o símbolo + (mais) é o operador. JavaScript suporta os seguintes tipos de operadores -
- Operadores aritméticos
- Operadores lógicos
- Operadores relacionais
- Operadores bit a bit
- Operadores de atribuição
- Operadores ternários / condicionais
- Operadores de string
- Operadores de tipo
- O operador void
Operadores aritméticos
Assuma os valores nas variáveis a e b são 10 e 5, respectivamente.
Operador | Função | Exemplo |
---|---|---|
+ | Addition Retorna a soma dos operandos. |
a + b é 15 |
- | Subtraction Retorna a diferença dos valores. |
ab é 5 |
* | Multiplication Retorna o produto dos valores. |
a * b é 50 |
/ | Division Executa uma operação de divisão e retorna o quociente. |
a / b é 2 |
% | Modulus Executa uma divisão e retorna o restante. |
a% b é 0 |
++ | Increment Aumenta o valor da variável em um. |
a ++ é 11 |
- | Decrement Diminui o valor da variável em um. |
a-- é 9 |
Operadores Relacionais
Os 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.
Operadores | 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
Os 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.
Operadores | Descrição | Exemplo |
---|---|---|
&& | And O operador retorna verdadeiro apenas se todas as expressões especificadas retornarem verdadeiras. |
(A> 10 && B> 10) é False |
|| | Or O operador retorna verdadeiro se pelo menos uma das expressões especificadas retornar verdadeiro. |
(A> 10 || B> 10) é verdadeiro |
! | Not O operador retorna o inverso do resultado da expressão. Por exemplo:! (7> 5) retorna falso. |
! (A> 10) é verdadeiro |
Operadores bit a bit
JavaScript oferece suporte aos seguintes operadores bit a bit. A tabela a seguir resume os operadores bit a bit do JavaScript.
Operadores | Uso | Descrição |
---|---|---|
E bit a bit | a e b | Devolve um em cada posição de bit para os quais os bits correspondentes de ambos os operandos são uns |
OR bit a bit | a | b | Devolve um em cada posição de bit para os quais os bits correspondentes de um ou de ambos os operandos são uns |
XOR bit a bit | a ^ b | Devolve um em cada posição de bit para o qual os bits correspondentes de um, mas não de ambos os operandos são uns |
NÃO bit a bit | ~ a | Inverte os bits do seu operando |
Desvio à esquerda | a << b | Desloca a na representação binária b (<32) bits para a esquerda, deslocando em zeros da direita |
Mudança à direita de propagação de sinal | a >> b | Desloca a na representação binária b (<32) bits para a direita, descartando os bits deslocados |
Zero-fill turno à direita | a >>> b | Muda a na representação binária b (<32) bits para a direita, descartando bits deslocados e deslocando em zeros da esquerda |
Operadores de atribuição
A tabela a seguir resume os operadores de atribuição.
Sr. Não | Operador e descrição |
---|---|
1 | = (Simple Assignment) Atribui valores do operando do lado direito para o operando do lado esquerdo. Example - 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. Example - 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. Example 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. Example 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. |
Note - A mesma lógica se aplica aos operadores bit a bit, então eles se tornarão << =, >> =, >> =, & =, | = e ^ =.
Operadores diversos
A seguir estão alguns dos diversos operadores.
O operador de negação (-)
Muda o sinal de um valor. O programa a seguir é um exemplo do mesmo.
var x = 4
var y = -x;
console.log("value of x: ",x); //outputs 4
console.log("value of y: ",y); //outputs -4
A seguinte saída é exibida na execução bem-sucedida do programa acima.
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 programa a seguir ajuda a entender esse conceito.
var msg = "hello"+"world"
console.log(msg)
A seguinte saída é exibida na execução bem-sucedida do programa acima.
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 seguir está a sintaxe.
Test ? expr1 : expr2
Onde,
Test - Refere-se à expressão condicional
expr1 - Valor retornado se a condição for verdadeira
expr2 - Valor retornado se a condição for falsa
Example
var num = -2
var result = num > 0 ?"positive":"non-positive"
console.log(result)
A linha 2 verifica se o valor da variável num é maior que zero. Se num for definido com um valor maior que zero, ele retorna a string “positiva”, caso contrário, uma string “não positiva” é retornada.
A seguinte saída é exibida na execução bem-sucedida do programa acima.
non-positive
operador typeof
É um operador unário. Este operador retorna o tipo de dados do operando. A tabela a seguir lista os tipos de dados e os valores retornados pelotypeof operador em JavaScript.
Tipo | String retornada por typeof |
---|---|
Número | "número" |
Corda | "corda" |
boleano | "boleano" |
Objeto | "objeto" |
O código de exemplo a seguir exibe o número como saída.
var num = 12
console.log(typeof num); //output: number
A seguinte saída é exibida na execução bem-sucedida do código acima.
number
Operador Spread
ES6 fornece um novo operador chamado spread operator. O operador de propagação é representado por três pontos “...”. O operador spread converte uma matriz em elementos individuais da matriz.
Operador de propagação e função
O exemplo a seguir ilustra o uso de operadores de propagação em uma função
<script>
function addThreeNumbers(a,b,c){
return a+b+c;
}
const arr = [10,20,30]
console.log('sum is :',addThreeNumbers(...arr))
console.log('sum is ',addThreeNumbers(...[1,2,3]))
</script>
A saída do código acima será como visto abaixo -
sum is : 60
sum is 6
Operador de propagação e cópia de matriz e concat
O operador de propagação pode ser usado para copiar uma matriz em outra. Também pode ser usado para concatenar dois ou mais arrays. Isso é mostrado no exemplo abaixo -
Exemplo
<script>
//copy array using spread operator
let source_arr = [10,20,30]
let dest_arr = [...source_arr]
console.log(dest_arr)
//concatenate two arrays
let arr1 = [10,20,30]
let arr2 =[40,50,60]
let arr3 = [...arr1,...arr2]
console.log(arr3)
</script>
A saída do código acima será conforme indicado abaixo -
[10, 20, 30]
[10, 20, 30, 40, 50, 60]
Spread Operator e Object copy e concatenação
O operador de propagação pode ser usado para copiar um objeto para outro. Também pode ser usado para concatenar dois ou mais objetos. Isso é mostrado no exemplo abaixo -
<script>
//copy object
let student1 ={firstName:'Mohtashim',company:'TutorialsPoint'}
let student2 ={...student1}
console.log(student2)
//concatenate objects
let student3 = {lastName:'Mohammad'}
let student4 = {...student1,...student3}
console.log(student4)
</script>
A saída do código acima será conforme fornecido abaixo -
{firstName: "Mohtashim", company: "TutorialsPoint"}
{firstName: "Mohtashim", company: "TutorialsPoint", lastName: "Mohammad"}