Operador unário
Um operador que só pode operar um valor é chamado de operador unário.
O operador unário é o operador mais simples do ECMAScript.
1. Incremento e diminuição dos operadores
Os operadores de incremento e diminuição emprestam diretamente de C, e cada um tem duas versões: o pré-tipo e o pós-tipo. Gu Mingsi disse que o pré-tipo deve dar lugar à variável a ser operada, enquanto o pós-tipo deve ser seguido pela variável a ser operada.
Tipo frontal:
var num1 = 1; var num2 = 2; var num3 = ++ num1 +num2; // 4
Tipo traseiro:
var num1 = 1; var num2 = 2; var num3 = num1 +++ num2; // 3
Os dois códigos acima têm resultados diferentes, porque há uma diferença muito importante entre pós-incremento e pré-incremento e diminuição, ou seja, as operações pós-incremento e decrescente são realizadas após a avaliação da declaração que os contendo.
Escopo de aplicação:
Pré-incremento e pós-incremento Todos os quatro operadores se aplicam a qualquer valor. Quando aplicado a valores diferentes, este operador converte o valor como a função de transformação número () e adiciona e subtraia 1 após a conversão.
2. Operadores de adição e subtração unidirecional
O operador unário de adição e subtração é usado principalmente para operações aritméticas básicas e também pode ser usado para converter tipos de dados (o operador converte esse valor como a função de transformação número ()).
Operador booleano
Existem três operadores booleanos: não (não) e (e), ou (ou).
1. Não lógico lógico
O não operador lógico é representado por uma marca de exclamação (!) E pode ser aplicado a qualquer valor no ECMAScript. Independentemente do tipo de dados que esse valor é, este operador retorna um valor booleano.
O uso de dois não operadores lógicos ao mesmo tempo simulará o comportamento da função de transformação booleana ()
2. Lógica e
A lógica e os operadores são representados por duas somas (&&), e existem dois operandos e podem ser aplicados a qualquer tipo de operando. Operação lógica e de curto-circuito, ou seja, se o primeiro operando for avaliado como falso, o segundo operando não será avaliado.
Quando ambos os valores são verdadeiros, o resultado é verdadeiro. Quando dois valores são verdadeiros e falsos, o resultado é falso. Retorna falsa quando ambos os valores são falsos.
Quando um dos valores não for booleano: siga as seguintes regras
O primeiro operando é falso e o primeiro é devolvido;
Quando o primeiro operando é verdadeiro, o segundo é devolvido.
Se o primeiro operando for um objeto, o segundo operando será devolvido
var a = {b: 1}; a && 'ss' // "ss"Se o segundo operando for um objeto, o objeto será retornado apenas se o resultado da avaliação do primeiro operando for verdadeiro
'ss' && a // objeto {b: 1}Se ambos os operandos forem objetos, o segundo operando será devolvido
var c = {d: 2}; c && a // objeto {b: 1}(1) Se um operando for nulo, retorne nulo
(2) Se houver um operando que seja nan, então a nan é devolvida
(3) Se um operando estiver indefinido, retorne indefinido
3. Lógico ou
Semelhante à lógica e aos operadores, a lógica ou os operadores também são operadores de curto-circuito. Ou seja, se o resultado da avaliação do primeiro operando for verdadeiro, a avaliação do segundo operando não será realizada.
(1) O primeiro operando é verdadeiro, devolva o primeiro
(2) O primeiro operando é falso, devolva o segundo
Operador de multiplicação
O ECMAScript define 3 operadores de multiplicação: multiplicação, divisão e modular
Infinito*0 // nan0/0 // naninfinity/infinito // nan
Operador aditivo
1. Adição (string de giro)
Ambos os operadores são valores numéricos
Realize cálculos regulares de adição.
Infinito + -infinity // nan
Se um operando é uma corda
Se ambos os operadores forem strings, o segundo operador será emendado com o primeiro operador
Se apenas um operador for uma string, converta o outro operando em uma string e, em seguida, use as duas cordas.
Se este operando for um objeto, numérico ou booleano, chame o método ToString () para obter o valor da string correspondente e aplique as regras anteriores sobre strings. Para nulo e indefinido, a função String () é chamada e as cordas "indefinidas" e "nulas" são obtidas, respectivamente.
2 + '' // "2"
2. Subtração (retornar ao valor)
Se ambos os operandos são numéricos
Realize uma operação regular de subtração aritmética e retorne o resultado. Se um operando for nan, o resultado é NAN
Infinito - infinito // nan
Se houver um operando que não seja um valor numérico
Se um operando for uma string, uma função booleana, nula ou indefinida, a função número () é chamada em segundo plano para convertê -la em um valor numérico e, em seguida, execute o cálculo da subtração de acordo com as regras anteriores. Se o resultado da conversão for NAN, o resultado da subtração é NAN.
Se um operando for um objeto, o método ValueOf () do objeto será chamado para obter o valor que representa o objeto. Se o valor obtido for NAN, o resultado da subtração é NAN. Se o objeto não tiver um método ValueOf (), seu método ToString () é chamado e a sequência resultante será convertida em um valor numérico.
5 - verdadeiro // 4
Operadores relacionais
Se ambos os operandos forem valores numéricos, execute comparação numérica
Se ambos os operandos forem strings, compare os valores de codificação de caracteres correspondentes às duas strings
Se um operando for um valor numérico, converta outro operando em um valor numérico e execute uma comparação numérica
var resultado = '23' <'3' // truevar resultado = '23' <3 // false
Operador igual
1. Igual e desigual
Converter primeiro e depois comparar
(1) Se um operando for um valor booleano, converta -o em um valor numérico antes de comparar a igualdade
(2) Se houver um operando que seja uma string e outro operando é um valor numérico, converta -o em um valor numérico primeiro
(3) Se um operando for um objeto e o outro não for, o método ValueOf () do objeto é chamado e o valor do tipo básico obtido é comparado de acordo com as regras básicas anteriores.
nulo e indefinido são iguais
Você não pode converter nulo e indefinido a qualquer outro valor antes de comparar a igualdade
Se ambos os operandos forem nan, o operador igual também retornará falso. De acordo com a regra, Nan não é igual a NAN
2. Congruente e incompleto
Compare apenas, não converte
"55"! == 55 // verdadeiro
Operador condicional
variável = boolean_expression? true_value: false_value
Essencialmente, o significado desse código é determinar qual valor para a variável variável com base no resultado da avaliação da boolean_expression. Se o resultado da avaliação for verdadeiro, atribua true_value à variável; Se o resultado da avaliação for falso, atribua false_value à variável variável.
Atribuir operador
Um operador de atribuição simples é representado por um sinal igual e sua função é atribuir o valor à direita à variável à esquerda.
Operador de vírgula
O operador de vírgula é usado principalmente para declarar várias variáveis; Além disso, o operador de vírgula também é usado para atribuir valores. Quando usado para atribuição, o operador de vírgula sempre retorna o último item na expressão.