Les mots précédents
La plupart des opérateurs en JavaScript sont représentés par des marques de ponctuation, et quelques-uns sont représentés par des mots clés. Leur syntaxe est concise, mais leur nombre est assez important. Les opérateurs suivent toujours une syntaxe fixe. Ce n'est qu'en comprenant et en maîtrisant ces contenus que les opérateurs peuvent être utilisés correctement. Cet article présentera principalement l'aperçu de la syntaxe des opérateurs JavaScript
Nombre d'opérandes
Il y a 46 opérateurs en JavaScript. Si vous les classez en fonction du nombre d'opérands, la plupart d'entre eux sont des opérateurs binaires. Leurs opérandes sont deux et ils combinent les deux expressions en expressions complexes.
1 + 2; vrai || FAUX;
L'opérateur unaire en JavaScript convertit une expression en une autre expression légèrement complexe, y compris principalement les 9 suivants:
++ - - + ~! supprimer typeof voida ++; typeof true;
JavaScript n'a qu'un seul opérateur ternaire, qui est un opérateur de jugement conditionnel ?:, qui combine trois expressions en une seule expression
2> 1? 2: 1;
Priorité
La priorité de l'opérateur contrôle l'ordre d'exécution des opérateurs et l'exécution des opérateurs avec une priorité élevée précède toujours les opérateurs avec des opérateurs de faible priorité.
Les 46 opérateurs sont divisés en 14 niveaux de priorité, de haut à bas:
++ - - + ~! supprimer le type de void * /% + - << >> >>> <<=>> = instanceof in ==! = ===! == & ^ | && || ?: = * = / =% = + = - = & = ^ = | = << = >> = >>> =,
À partir de ces niveaux de priorité de l'opérateur de 14 niveaux, nous pouvons voir:
Opérateur unary> Opérateur arithmétique> Opérateur de comparaison> Opérateur logique> Opérateur tripartite> Opérateur d'affectation> Opérateur de virgule
[Remarque] L'opérateur d'inversion logique appartient à l'opérateur unaire et a la priorité la plus élevée
exemple
! 2 <1 && 4 * 3 + 1;
La situation ci-dessus est plus compliquée, décompose progressivement l'ordre d'opération
Calculez d'abord l'opérateur unaire!,! 2; // faux
// alors l'expression devient fausse <1 && 4 * 3 + 1;
Calculer l'opérateur arithmétique 4 * 3 + 1; // 13
// alors l'expression devient fausse <1 && 13;
Calculer l'opérateur de comparaison <, false <1; // true
// alors l'expression devient: true && 13; // 13
Les parenthèses peuvent être utilisées pour spécifier avec force l'ordre des opérations
2 + 3 * 5; // 17 (2 + 3) * 5; // 25;
Liaison
Les opérateurs ont deux types de propriétés de liaison, l'une est liée de gauche à droite, avec la marque L, et l'autre est liée de droite à gauche, avec la Mark R. La liaison spécifie l'ordre d'opérations dans plusieurs expressions d'opérateur avec la même priorité.
La plupart des opérateurs ont une combinaison de gauche à droite, seuls les opérateurs unaires, les opérateurs conditionnels et les opérateurs d'affectation ont une combinaison de droite à gauche.
w = x + y + z; // équivalent à: w = ((x + y) + z);
w = x = y = z; // équivalent à: w = (x = (y = z));
q = a? B: C? D: E? f: g; // équivalent à: q = a? b: (c? d: (e? f: g));
La priorité et la liaison des opérateurs déterminent leur ordre d'opérations dans des expressions complexes, mais lorsque les sous-expressions ont une influence mutuelle, l'ordre changera.
exemple
a = 1; b = a ++ + a-- * a ++;
Analysez d'abord l'expression et, selon l'ordre de priorité, l'opérateur d'incrément, l'opérateur de multiplication, l'opérateur d'addition et l'opérateur d'affectation sont respectivement calculés.
Calculez d'abord le premier a ++; // le résultat est 1, a est 2
// l'expression devient b = 1 + a-- * a ++;
Calculer a -; // le résultat est 2, a est 1
// l'expression devient b = 1 + 2 * a ++;
Calculez le deuxième a ++; // le résultat est 1, a est 2
// l'expression devient b = 1 + 2 * 1;
Ainsi, finalement a = 2; b = 3;
a = 1; b = a ++ + a-- * a ++; console.log (a, b); // 2 3
// De même, a = 1; b = a-- * a ++ + a ++; console.log (a, b); // 2,1
taper
Certains opérateurs peuvent agir sur n'importe quel type de données, mais ils veulent toujours que leurs opérandes soient des données du type spécifié, et la plupart des opérateurs renvoient une valeur d'un type spécifique. Dans le tableau des règles de l'opérateur ci-dessous, la flèche est le type d'opérande opérateur et la flèche est le type de résultat d'opération après la flèche est le type de résultat d'opération.
【Lvalue】
Lvalue est un terme ancien qui signifie que les expressions ne peuvent apparaître que sur le côté gauche de l'opérateur.
En JavaScript, les variables, les propriétés d'objet et les éléments de tableau sont tous des LVALU
Le type d'opérande d'opérateur d'incrément ++, l'opérateur décroissant - et les opérateurs d'affectation sont LVALUE
var a = 3; a ++; // 33 -; // signaler une erreur ({}). a + = '1'; // 'undefined1''test' - = 'test'; // signaler une erreurTable de règles de l'opérateur
Type de fonctionnement de l'opérateur ++ Incrément lval-> num-- décrément lval-> num- inverse num-> num + converti en nombre num-> num ~ inverse int-> int! Logical Nonool-> Booldelete Delete Attribut lval-> booltypeof de détection Type any-> strvoid return undefined any-> undef ************************************************************** /% Multiply, Divide et Find the résiduel 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 Right Shift Int, int-> int ***********************************************************************************************************************************************. Str, obj-> bool *********************************************************************************************************************. any-> bool ************************************************************* & bitwise et int, int-> int ****************************************************************************************************************************. int->int***************************************************************************************************************************************************************************|| Logique ou tout, n'importe quoi bool,any,any->any*************************************************************************************************************************************************************************** ************************************************************************************************************************************************************************************************************************************************************************************************. ************************************************************************************************************************************************************************************************************************************************************************************************. ************************************************************************************************************************************************************************************************************************************************************************************************. ************************************************************************************************************************************************************************************************************************************************************************************************. ************************************************************************************************************************************************************************************************************************************************************************************************. ************************************************************************************************************************************************************************************************************************************************************************************************. *******************************************************************************************************************************************************************************************
L'aperçu complet ci-dessus de la grammaire des opérateurs JavaScript est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.