Présentation
RÉSUMÉ
Javascript est un langage de programmation pour les applications Web. Quoique assez jeune, puisque né en 1995, l’essor du Web a conféré à Javascriptune position dominante tant dans les navigateurs que maintenant côté serveurs. Cet article présente ce langage dans sa version standardisée de 2015.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleAuteur(s)
-
Christian Queinnec : Professeur émérite de l’UPMC
INTRODUCTION
Javascript est désormais le langage du Web tant du côté des serveurs que du côté des navigateurs qu’il s’exécute sur téléphone, tablette ou ordinateur. Cet article décrit synthétiquement le langage (dans sa version ECMAScript 2015) et ses principales spécificités afin de permettre aux lecteurs, ayant une certaine pratique de l’informatique, d’appréhender les caractéristiques majeures de ce langage de programmation. Tout ne sera bien évidemment pas dit (la norme fait 566 pages) mais l’essentiel le sera.
Les exemples figurant dans cet article n’ont pas une tonalité uniforme, ils varient les styles, emploient parfois des caractéristiques en avance ou des caractéristiques mineures non nécessairement détaillées dans le texte, mais qui illustrent l’éventail des possibilités qu’offre ECMAScript 2015.
VERSIONS
- Version archivée 1 de mars 1979 par Georges GARDARIN, Richard GOMIEZ DE CÉDRON
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
3. Valeurs
Javascript est dynamiquement typé : toute valeur produite par un calcul a un type qui peut être booléen, nombre, chaîne de caractères, fonction, objet. En revanche, les variables n’ont pas de type et peuvent contenir successivement des valeurs de types différents (même si ce n’est pas nécessairement recommandable). Les valeurs de Javascript sont dites des citoyens de première classe car il n’y a pas de restriction sur leur emploi : elles peuvent être stockées dans des variables, des tableaux, des objets, être passées en argument de fonction ou renvoyées en résultat de fonction.
On distingue les types primitifs comme booléen, nombre, chaîne de caractères ou symboles, des objets qui sont fondamentalement des tables associatives. Existent aussi des natures d’objets prédéfinies (des classes), par exemple, Date, RegExp ou Error. Existent également deux singletons null (pour représenter l’absence de valeur) et undefined (la « valeur » initiale d’une variable ou d’une propriété d’un objet non encore initialisée) qui ont pour type, respectivement, object (sic) et undefined.
3.1 Nombres
Du point de vue de l’implantation, il n’y a, en Javascript, que des flottants sur 64 bits. Les entiers (entre –253 et +253) ne sont que des flottants sans partie décimale. Si le type des entiers et des flottants est l’unique number, on peut toutefois distinguer les entiers avec le prédicat Number.isInteger.
Conformément à la norme IEEE 754, quelques valeurs spéciales existent : +0, -0, Infinity, -Infinity et NaN (pour Not a Number). Ces valeurs peuvent être distinguées grâce aux prédicats spécialisés : isFinite et isNaN (figure 7).
NaN est souvent utilisé par Javascript lorsque le résultat d’une opération censée produire un résultat numérique a des opérandes incorrects, ainsi [] * "foo" donne NaN.
HAUT DE PAGE3.2 Valeurs de vérité
C’est un des points délicats de Javascript. Aux valeurs true et false de type boolean s’ajoutent de nombreux autres cas dus à des conversions automatiques de type. Ainsi distingue-t-on deux opérateurs de comparaison == (égalité)...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Valeurs
BIBLIOGRAPHIE
NORMES
-
ECMAScript® 2016 language specification - ECMA-262 - 2016
-
IEEE Standard for the Scheme Programming Language - IEEE Std 1178-1990 - 1990
-
Information technology Universal Coded Character Set (UCS) - ISO/IEC 10646 : 2014 - 2014
-
Standard for Binary Floating – Point Arithmetic - IEEE 754 - 2008
ANNEXES
Node https://nodejs.org/
Babel.js http://babeljs.io/
MongoDB https://www.mongodb.org/
JQuery https://jquery.com/
lodash https://github.com/lodash/lodash
Rhino https://github.com/mozilla/rhino
ES6 compatibility https://kangax.github.io/compat-table/es6/
HAUT DE PAGECet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive