Présentation de JavaScript

Malgré son nom, JavaScript n’est lié qu’à Java dans la mesure où les deux partagent quelques des similitudes syntaxiques. La syntaxe de JavaScript dans son développement initial était vaguement inspirée par la syntaxe de Java et il s'appelait « LiveScript » la première fois livrés dans une version bêta de Netscape Navigator en 1995, tous deux pour s'aligner sur certains des autres offres de Netscape et comme clin d'œil au fait qu'il fonctionne « en direct » dans le navigateur. Microsoft a publié sa propre implémentation de JavaScript, « JScript », peu de temps après avec Internet Explorer 3.0.

Netscape a soumis cette première œuvre à Ecma International, une organisation qui établit et publie des normes techniques, afin de formaliser et de détailler langage de script doit être compris par les autres navigateurs. En 1997, Ecma Publication au niveau international ECMA-262, qui standardise la première version d'un script langage ECMAScript. ECMAScript est la norme qui guide la création de langages de script plus spécifiques. Par exemple, le travail ultérieur de Microsoft JScript, le script Adobe ActionScript d'Adobe et JavaScript lui-même.

Cette distinction est importante lorsque vous abordez des aspects et des caractéristiques spécifiques de JavaScript. "ES5" fait référence au premier sortie du ECMAScript en 2009, après des années de développement plus fragmenté. "ES6" (ou "ES2015") est un raccourci pour désigner les normes définies par la sixième édition de ECMAScript, sorti en 2015. Après ES6, les nouvelles éditions d'ECMAScript standard publiées chaque année, avec les modifications et les ajouts de chaque édition désigné par année, comme dans "ES2016" ou "ES2017".

Règles de base

Contrairement aux langages compilés, JavaScript n'est pas traduit du code qu'une personne écrit dans un format compréhensible par le navigateur. Un script est envoyé au navigateur. parallèlement à des éléments comme le balisage, les images et les feuilles de style, le navigateur l'interprète. au même titre qu'à l'écrit: sous la forme d'une séquence de caractères Unicode intelligible, analysées de gauche à droite et de haut en bas.

Lorsqu'un interpréteur JavaScript reçoit un script, il effectue d'abord Analyse lexicale : analyse la longue chaîne de caractères qui compose un script puis le convertir en éléments d'entrée discrets suivants:

  • Jetons
  • Caractères de contrôle de mise en forme
  • Terminateurs de ligne
  • Commentaires
  • Espace blanc (presque c'est-à-dire toujours des tabulations et des espaces).

Les résultats d'un script ne sont pas conservés après un rechargement ou une navigation la page actuelle, sauf si vous incluez des instructions explicites pour faire autrement dans le script.

De manière générale, les applications JavaScript sont constituées d'instructions et expressions.

Les déclarations

Une instruction est une unité d'instruction composée d'une ou de plusieurs lignes de code qui : représentent une action. Par exemple, vous pouvez utiliser l'instruction suivante pour attribuer une valeur à une variable nommée myVariable:

let myVariable = 4;

myVariable;
> 4

Pour être interprétées correctement, les instructions doivent se terminer par un point-virgule. Toutefois, ces Les points-virgules ne sont pas toujours obligatoires lors de l'écriture de JavaScript. Une fonctionnalité appelée L'insertion automatique d'un point-virgule permet de tracer une ligne suite à une instruction complète soit traitée comme un point-virgule si une valeur un point-virgule provoquait une erreur.

ASI est la correction d'erreurs, et non un aspect permissif de JavaScript lui-même. En effet, compter trop sur cette correction d'erreur peut donner lieu à une ambiguïté qui rompt votre vous devez toujours terminer manuellement chaque instruction par un point-virgule.

Instructions de blocage

Une instruction de bloc regroupe un nombre illimité d'instructions et de déclarations dans une paire d'accolades ({}). Il vous permet de combiner des instructions là où JavaScript n'en attend qu'un.

Vous verrez le plus souvent des instructions de blocage aux côtés les instructions de flux de contrôle, par exemple if:

if ( x === 2 ) {
  //some behavior;
}

Expressions

Une expression est une unité de code qui génère une valeur et peut donc être utilisé partout où une valeur est attendue. 2 + 2 est une expression qui renvoie le valeur 4:

2 + 2;
> 4

L'« opérateur de regroupement », une paire de parenthèses encadrées, est utilisé pour regrouper les parties d'une expression pour vous assurer qu'une partie de l'expression évaluée comme une seule unité. Par exemple, vous pouvez utiliser un opérateur de regroupement pour remplacer l'ordre mathématique des opérations, ou pour améliorer la lisibilité du code:

2 + 2 * 4;
> 10

( 2 + 2 ) * 4;
> 16

let myVariable = ( 2 + 2 );

myVariable;
> 4

Saisie faible

JavaScript est un langage faiblement typé, ce qui signifie qu'une valeur de données n'a pas besoin être explicitement marqués comme un type de données spécifique. Contrairement à un langage fortement typé, JavaScript peut déduire le type souhaité à partir d'un le contexte d'une valeur et convertir la valeur dans ce type. Ce processus s'appelle type coercion.

Par exemple, si vous ajoutez un nombre à une valeur de chaîne dans une langue fortement typée, comme Python, une erreur est renvoyée:

>>> "1" + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

Au lieu de renvoyer une erreur, JavaScript convertit (par coercition) la valeur numérique en chaîne. et concatène les deux valeurs, le comportement le plus probable lors de l'ajout n'importe quelle valeur en chaîne:

"1" + 1;
> "11"

Les types de données peuvent également être explicitement forcés. L'exemple suivant convertit (par coercition) le la valeur numérique 100 en une valeur de chaîne de "100" à l'aide de la fonction JavaScript intégrée Méthode toString:

let myVariable = 100;

typeof myVariable;
> "number"

myVariable = myVariable.toString();
> "100"

typeof myVariable;
> "string"

Sensibilité à la casse

Contrairement au code HTML et à la majorité des CSS, JavaScript est entièrement sensible à la casse. Vous devez donc toujours mettre toutes les majuscules de manière cohérente, des propriétés et des méthodes intégrées au langage aux identifiants que vous définissez vous-même.

console.log( "Log this." );
> Log this.

console.Log( "Log this too." );
> Uncaught TypeError: console.Log is not a function
const myVariable = 2;

myvariable;
> Uncaught ReferenceError: myvariable is not defined

myVariable;
> 2

Espace blanc

Le code JavaScript n'est pas sensible aux espaces. Cela signifie que l'interprète ignore la quantité et le type d'espaces blancs utilisés (tabulations ou espaces).

                     console.log(       "Log this"  );console.log("Log this too");
> "Log this."
> "Log this too."

Cependant, la présence d'espaces blancs peut s'avérer importante comme séparateur entre lexicals:

let x;

[jetons: [let] [x] ]

letx;
> Uncaught ReferenceError: letx is not defined

[jetons: [letx] ]

Lorsque les espaces sont utilisés pour séparer les jetons lexiques significatifs, l'analyseur ignore la quantité et le type des espaces blancs:

let           x                             =                           2;

[jetons: [let] [x] [=] [2] ]

Il en va de même pour les sauts de ligne, même si, dans certains cas, causer des problèmes en arrêtant prématurément une instruction):

let x
=
2;

[jetons: [let] [x] [=] [2] ]

D'un point de vue stylistique, certains types d'énoncés occupent souvent une seule ligne:

let x = 1;
let y = 2;

Bien que certaines instructions utilisent généralement plusieurs lignes:

if ( x == 2 ) {
  //some behavior;
}

Toutefois, ces conventions sont strictement à des fins de lisibilité. JavaScript interprète les exemples précédents de la même manière que:

let x=1;let y=2;
if(x==2){}

Pour cette raison, un processus automatisé qui supprime les espaces non essentiels des des fichiers de script permettant de réduire la taille du transfert est une étape courante de la préparation du code JavaScript. pour un environnement de production, et d'autres optimisations sont possibles.

L'utilisation d'espaces blancs dans JavaScript dépend en grande partie de l'auteur et les préférences du responsable. Projets JavaScript avec plusieurs développeurs contribuant au code suggèrent souvent ou appliquent certaines conventions d'espace blanc pour assurer une mise en forme cohérente du code, par exemple en utilisant des tabulations ou des espaces pour Mettez en retrait les instructions imbriquées:

let myVariable = 10;

if ( typeof myVariable === "number" ) {
    console.log( "This variable is a number." );
    if( myVariable > 5 ) {
     console.log( "This variable is greater than five." );
    }
}

> "This variable is a number."
> "This variable is greater than five."

Testez vos connaissances

Qu'est-ce qu'une expression ?

Groupe d'instructions et de déclarations.
Unité de code qui génère une valeur.
Un commentaire qui explique ce que fait le code.

JavaScript est sensible à la casse.

Faux
Vrai