La const perplexe : pourquoi vous pouvez (en quelque sorte) modifier des objets constants en JavaScript
Malgré la définition claire des constantes dans ECMAScript 6, où elles sont déclarées comme valeurs immuables qui ne peuvent pas être réaffectées ou redéclarées, de nombreux navigateurs prenant désormais en charge le mot-clé const semblent autoriser certaines modifications des objets constants.
Cette contradiction perçue découle des aspects techniques du comportement constant en JavaScript. Bien que vous ne puissiez pas réaffecter ou redéclarer directement une constante, vous pouvez modifier les propriétés d'un objet constant.
La raison en est que lorsque vous ajoutez ou supprimez des éléments d'un tableau, ou ajoutez ou modifiez des propriétés dans un objet, vous ne modifiez pas réellement la constante elle-même. Vous modifiez plutôt l'état interne de l'objet vers lequel pointe la constante.
Par exemple, dans le code suivant :
const yyy = []; yyy.push(6); yyy.push(1);
yyy reste une référence au même tableau, mais le contenu de ce tableau change. De même, dans le code suivant :
const x = {}; x.foo = 'bar';
x continue de faire référence au même objet, mais une nouvelle propriété, foo, est ajoutée à cet objet.
Il est donc possible de modifiez l'état des objets constants, mais vous ne pouvez pas réaffecter ou redéclarer la constante elle-même.
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!