J'ai lu sur un site que vous pouvez faire des variables constantes en JavaScript comme:
const x = 20;
mais sur un autre site, j'ai lu que vous ne pouvez pas. Donc je suis confus maintenant qu'est-ce que c'est maintenant?
Également dans Visual Studio 2010 lorsque j'écris const
, il le souligne dans le fichier JavaScript et affiche une erreur de syntaxe.
const
est une fonctionnalité proposée d'ECMAScript Harmony (avec un let
de portée correcte, il est censé remplacer var
et les globaux implicites). ECMAScript Harmony est un sac d'idées pour les prochaines versions d'ECMAScript.
const
faisait également partie d'ECMAScript 4.
ECMAScript 4 n'a jamais été publié et ne le sera jamais, et ECMAScript Harmony ne sortira que dans quelques années. Par conséquent, vous ne pouvez pas l'utiliser de manière fiable.
Il existe des implémentations ou des dérivés d'ECMAScript qui implémentent const
(ActionScript, par exemple). Il existe également des implémentations qui acceptent const
comme synonyme de var
(IOW, vous pouvez utiliser const
, mais cela ne vous donnera aucune protection.)
Cependant, à moins que vous ne puissiez absolument garantir que votre code ne fonctionnera que sur des versions très spécifiques d'implémentations très spécifiques de dérivés très spécifiques d'ECMAScript, il est probablement préférable de l'éviter. (Ce qui est vraiment dommage, car const
et surtout let
sont une amélioration énorme par rapport à var
et globaux implicites.)
si vous recherchez une variable en lecture seule, vous simulez cela avec quelque chose comme
var constants = new (function() {
var x = 20;
this.getX = function() { return x; };
})();
puis l'utiliser comme
constants.getX()
La solution est de créer un objet et de mettre toutes vos constantes dans l'objet:
const={};
const.x=20;
const.y=30;
Object.freeze(const); // finally freeze the object
Usage:
var z=const.x + const.y;
Toute tentative de modification de la variable génère une erreur:
const.x=100; <== raises error
JavaScript ES6 (re) a introduit le mot-clé const
qui est pris en charge dans tous les principaux navigateurs .
Les variables déclarées via
const
ne peuvent pas être déclarées ou réaffectées.
En dehors de cela, const
se comporte comme let
.
Il se comporte comme prévu pour les types de données primitifs (booléen, nul, non défini, nombre, chaîne, symbole):
const x = 1;
x = 2;
console.log(x); // 1 ...as expected, re-assigning fails
Attention: Soyez conscient des pièges concernant les objets:
const o = {x: 1};
o = {x: 2};
console.log(o); // {x: 1} ...as expected, re-assigning fails
o.x = 2;
console.log(o); // {x: 2} !!! const does not make objects immutable!
const a = [];
a = [1];
console.log(a); // 1 ...as expected, re-assigning fails
a.Push(1);
console.log(a); // [1] !!! const does not make objects immutable
Il n'y a pas de const
dans ECMAScript (sans tenir compte de la version 4.0 morte et d'ActionScript).
const
est disponible dans JScript.NET , et certains versions récentes des moteurs JS par ex. Firefox, Opera 9, Safari en tant qu'extension spécifique au fournisseur.
Je crois qu'il y a quelque chose qui n'est pas avec var, c'est une variable globale .... il n'y a pas de const en js.
var a="test"
est différent de a="test"
Non, il n'y a pas de type de données "const" en JavaScript.
JavaScript est un langage peu typé. Chaque type de variable est déclaré avec un var
Consultez ce document, il explique comment utiliser const en javascript
http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml