Maison > Article > développement back-end > Série ES6 déclarant les variables let et const
Cet article partage principalement avec vous les variables déclarées let et const de la série ES6. Les amis intéressés peuvent se référer au contenu de cet article
Prise en charge d'ES6 par les principaux navigateurs : kangax
Le fichier de configuration de Babel est .babelrc, qui est stocké dans le répertoire racine du projet. La première étape de l'utilisation de Babel consiste à configurer ce fichier.
{ let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1N'autorise pas les déclarations répétéeslet n'autorise pas les déclarations répétées de la même variable dans la même portée.
// 报错 function func() { let a = 10; var a = 1; } function func(arg) { let arg; // 报错 } function func(arg) { { let arg; // 不报错 } }Étendues au niveau du bloc
{{{{ {let insane = 'Hello World' {let insane = 'Hello World'} } console.log(insane); // 报错 }}}};Portée au niveau du bloc et déclaration de fonction
// var 的情况 console.log(foo); // 输出undefined var foo = 2; // let 的情况 console.log(bar); // 报错ReferenceError let bar = 2;Zone morte temporaireTant que la commande let existe dans la portée au niveau du bloc, les variables qu'elle déclare seront "liées" à cette zone et ne seront plus affectées par des influences extérieures.
var tmp = 123; if (true) { tmp = 'abc'; // ReferenceError let tmp; }Dans un bloc de code, la variable n'est disponible que lorsqu'elle est déclarée à l'aide de la commande let. Syntaxiquement, cela s'appelle la « zone morte temporaire » (TDZ). constconst déclare une constante en lecture seule. Une fois déclarée, la valeur d'une constante ne peut plus être modifiée.
const PI = 3.1415; PI // 3.1415 PI = 3; // TypeError: Assignment to constant variable.EssenceCe que const garantit réellement, ce n'est pas que la valeur de la variable ne peut pas être modifiée, mais que l'adresse mémoire pointée par la variable ne peut pas être modifié. Pour les types de données simples (valeurs numériques, chaînes, valeurs booléennes), la valeur est stockée à l'adresse mémoire pointée par la variable, et équivaut donc à une constante. Mais pour les données de type composite (principalement des objets et des tableaux), l'adresse mémoire pointée par la variable n'enregistre qu'un pointeur. Const ne peut que garantir que ce pointeur est fixe. Quant à savoir si la structure de données vers laquelle il pointe est variable, elle l'est complètement. Je ne peux plus le contrôler. Par conséquent, vous devez être très prudent lorsque vous déclarez un objet comme constante.
const foo = {}; // 为 foo 添加一个属性,可以成功 foo.prop = 123; foo.prop // 123 // 将 foo 指向另一个对象,就会报错 foo = {}; // TypeError: "foo" is read-onlySi vous souhaitez vraiment geler l'objet, vous devez utiliser la méthode Object.freeze.
const foo = Object.freeze({}); // 常规模式时,下面一行不起作用; // 严格模式时,该行会报错 foo.prop = 123;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!