Las palabras anteriores
La mayoría de los operadores en JavaScript están representados por signos de puntuación, y algunos están representados por palabras clave. Su sintaxis es concisa, pero su número es bastante grande. Los operadores siempre siguen una sintaxis fija. Solo al comprender y dominar estos contenidos se puede usar correctamente los operadores. Este artículo presentará principalmente la descripción de la sintaxis de los operadores de JavaScript
Número de operandos
Hay 46 operadores en JavaScript. Si los clasifica de acuerdo con el número de operandos, la mayoría de ellos son operadores binarios. Sus operandos son dos, y combinan las dos expresiones en expresiones complejas.
1 + 2; verdadero || FALSO;
El operador unario en JavaScript convierte una expresión en otra expresión ligeramente compleja, principalmente incluyendo los siguientes 9:
++ - - + ~! Eliminar typeOf Voida ++; typeof true;
JavaScript tiene solo un operador ternario, que es un operador de juicio condicional?:, Que combina tres expresiones en una sola expresión
2> 1? 2: 1;
Prioridad
La prioridad del operador controla el orden de ejecución de los operadores, y la ejecución de operadores con alta prioridad siempre precede a los operadores con operadores de baja prioridad.
Los 46 operadores se dividen en 14 niveles de prioridad, de alta a baja:
++ - - + ~! Eliminar typeOf void * / % + - << >> >>> <<= >> = instanceof in ==! = ===! == & ^ | && ||?: = * = / = % = + = - = & = ^ = | = << = >> = >> =, =,
De estos niveles de prioridad del operador de 14 niveles, podemos ver:
Operador unario> Operador aritmético> Operador de comparación> Operador lógico> Operador tripartito> Operador de asignación> Operador de coma
[Nota] El operador de inversión lógica pertenece al operador unario y tiene la más alta prioridad
ejemplo
! 2 <1 && 4*3+1;
La situación anterior es más complicada, descompone gradualmente el orden de operación
Primero calcule el operador unario!,! 2; // falso
// entonces la expresión se vuelve falsa <1 && 4*3 + 1;
Calcule el operador aritmético 4*3+1; // 13
// Entonces la expresión se vuelve falsa <1 && 13;
Calcule el operador de comparación <, falso <1; // Verdadero
// Entonces la expresión se convierte en: verdadero && 13; // 13
Los paréntesis se pueden usar para especificar con fuerza el orden de las operaciones
2+3*5; // 17 (2+3)*5; // 25;
Vínculo
Los operadores tienen dos tipos de propiedades de unión, una está vinculada de izquierda a derecha, con el Mark L, y el otro está unido de derecha a izquierda, con el Mark R. La unión especifica el orden de operaciones en múltiples expresiones de operadores con la misma prioridad.
La mayoría de los operadores tienen una combinación de izquierda a derecha, solo los operadores unarios, los operadores condicionales y los operadores de asignación tienen una combinación de derecha a izquierda.
w = x + y + z; // equivalente a: w = ((x + y) + z);
w = x = y = z; // equivalente a: w = (x = (y = z));
P = A? B: C? D: E? f: g; // equivalente a: q = a? B: (C? D: (E? F: G));
La prioridad y la unión de los operadores determinan su orden de operaciones en expresiones complejas, pero cuando las subexpresiones tienen influencia mutua, el orden cambiará.
ejemplo
a = 1; b = a +++a-- * a ++;
Primero analice la expresión, y de acuerdo con el orden de prioridad, el operador de incremento, el operador de multiplicación, el operador de adición y el operador de asignación se calculan respectivamente.
Primero calcule el primer A ++; // El resultado es 1, A es 2
// La expresión se convierte en b = 1+a-- * a ++;
Calcule A-; // El resultado es 2, A es 1
// La expresión se convierte en B = 1+2 * A ++;
Calcule el segundo A ++; // El resultado es 1, A es 2
// La expresión se convierte en B = 1 + 2 * 1;
Entonces, en última instancia A = 2; b = 3;
a = 1; b = a +++a-- * a ++; console.log (a, b); // 2 3
// Del mismo modo a = 1; b = a-- * a +++a ++; console.log (a, b); // 2,1
tipo
Algunos operadores pueden actuar sobre cualquier tipo de datos, pero aún desean que sus operandos sean datos del tipo especificado, y la mayoría de los operadores devuelven un valor de un tipo específico. En la tabla de reglas del operador a continuación, la flecha es el tipo de operador del operador y la flecha es el tipo de resultado de la operación después de que la flecha es el tipo de resultado de la operación.
【Lvalue】
Lvalue es un término antiguo que significa que las expresiones solo pueden aparecer en el lado izquierdo del operador.
En JavaScript, las variables, las propiedades de los objetos y los elementos de matriz son todos Lvalues
El tipo de operando de operador de incremento ++, disminución del operador y operadores de asignación es lvalue
var a = 3; a ++; // 33-; // Informe un error ({}).Tabla de reglas del operador
Tipo de operación del operador ++ incremento lval-> num-- disminución lval-> num- inverso num-> num+ convertir a número num-> num ~ inverse int-> int! Logical non-bool->booldelete Delete attribute lval->booltypeof Detection type any->strvoid Return undefined any->undef************************************************************/% Multiply, divide, and find the residual num, num->num******************************************************************+ - Add and subtract num, num->num+ String concatenation str, str->str******************************************************<< left shift int, int->int>> signed right shift int, int->int>>> Unsigned cambio correcto int, int-> int ************************************************************************************************************************************************************************************************. Str, OBJ-> Bool *********************************************************************************************************************************************************************************************************************************en igual a-> cualquiera-> bool *********************************************************************************************************************************************************************************** de int-> int **************************************************************************************************************************************************************************************************************************************************************************** contra Lógica o cualquiera, cualquiera-> cualquier ******************************************************* bool, any, cualquiera-> cualquier *******************************************************************************************************************************************************************************************************************************************************************************************enga ******************************************************************************************************************************************************************************************** ******************************************************************************************************************************************************************************************** ******************************************************************************************************************************************************************************************** ******************************************************************************************************************************************************************************************** ******************************************************************************************************************************************************************************************** ******************************************************************************************************************************************************************************************** **************************************************************************************************************************************************************************************************************************************************************************************************A.
La descripción completa completa de la gramática de los operadores de JavaScript es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.