Si oui, quelle est la syntaxe d'une telle déclaration ?
Réponses
Trop de publicités?- La réponse directe à cette question est non. Il serait cependant très utile que l'ECMA/JS permette de réaliser facilement la programmation fonctionnelle. Une astuce pratique que j'utilise pour contourner ce problème consiste à déclarer une constante dans la portée globale et à utiliser une fonction d'encapsulation (voir l'exemple ci-dessous) :
-
)
global_var = 3; //This can change say inside a function etc. but once you decide to make //this global variable into a constant by calling on a function const make_variable_constant = function(variable) { const constant = variable; return constant; }
const const_global = make_variable_constant(global_var);
)
À l'époque où la programmation orientée objet était à la mode, un jeune de ma classe a dit à l'instructeur de C que le C n'était pas orienté objet, ce à quoi l'instructeur a répondu qu'il avait fait de la programmation orientée objet en C avant même que Java et C++ ne soient conçus. De même, vous pouvez faire de la programmation fonctionnelle en Javascript mais c'est beaucoup plus difficile. C'est comme faire de la programmation orientée objet en C alors que c'est plus facile de le faire en C++.
Pour mémoire.
// ES6+ code:
const CONSTGLOBAL1=200; // it is a constant global
function somef() {
document.write(CONSTGLOBAL1); // CONSTGLOBAL1 is defined (because it's global)
const CONSTLOCAL=200; // it's a local constant
document.write(CONSTLOCAL); // CONSTLOCAL is defined
}
somef();
document.write(CONSTLOCAL); // CONSTLOCALis NOT defined.
Ainsi, si la constante est définie à l'intérieur de {}, elle est locale, sinon, elle est globale.
Similaire à La réponse de kojow7 mais au lieu de saisir toutes les exportations nommées, j'aime utiliser une seule exportation nommée, par ex. Constants
et ensuite déclarer mes constantes comme ceci :
-
Créez un fichier Constants.js en déclarant vos constantes comme ceci et en les exportant
Constants
:// Constants.js export const Constants = { FRUIT: "kiwi", VEGETABLE: "carrot", };
-
Faites une importation nommée dans les fichiers pour lesquels vous avez besoin d'une constante :
import { Constants } from './Constants';
-
Utilisez ensuite les constantes comme suit :
console.log("The unchangeable fruit is " + Constants.FRUIT);
Il ne semble pas y avoir d'inconvénient à utiliser l'une plutôt que l'autre option, mais ce que j'aime personnellement, c'est que je nomme le fichier comme je veux l'importer. import { Constants } from './Constants';
et ne pas toujours penser à la façon dont je l'appelle lorsque je saisis toutes les exportations nommées. import * as Constants from './Constants'
. Donc, dans le second cas, je pourrais vouloir regarder dans un autre fichier où j'ai déjà importé les constantes et regarder comment j'ai nommé l'importation en cas de cohérence. Regardez aussi aquí pour les différentes possibilités d'exportation/importation.
Si vous ne prévoyez pas de modifier la valeur des propriétés d'un objet, vous pouvez utiliser la fonction Object.freeze()
:
window.globalConst = Object.freeze( { x: 1, y: true } );
L'exemple suivant illustre la différence entre const
y Object.freeze()
:
const x = Object.freeze({
a: 1,
b: 2
});
x.a = 3;
// x.a is still = 1
console.log("x.a = ", x.a);
const y = {
a: 1,
b: 2
};
y.a = 3;
// y.a has been changed to 3
console.log("y.a = ", y.a);
- Réponses précédentes
- Plus de réponses
0 votes
Si par global vous voulez dire une variable qui peut être appelée après changement sur les pages du domaine alors ce dont vous avez besoin c'est de cookies
0 votes
@Dcrodger : Non, juste global entre les fonctions. En outre, il s'agit d'une constante, pas d'une variable - par conséquent, les cookies seraient exagérés.
0 votes
Voir aussi : stackoverflow.com/questions/130396/