A terceira palavra -chave da declaração introduzida pelo ES6 é semelhante a LET: const.
Dê uma olhada no uso:
const C1 = 1; const C2 = {}; const C3 = []; Object.GetownProperTyDescriptor (Window, "C1") // Objeto {Valor: 1, gravidade: false, enumerável: verdadeiro, configurável: false}O exemplo acima diz que você não pode atribuir valores ao C2, mas o conteúdo de C2 pode ser alterado porque C2 é um objeto. Veja o exemplo:
c2.p1 = 1;
Da mesma forma, você também pode adicionar elementos ao C3 porque C3 é uma matriz.
Há outro problema em declarar constantes constantes, ou seja, a declaração e a inicialização devem estar juntas e, após a declaração, deve ser inicializada:
'Use rigoroso'; const C4; // SyntaxError não capturado: token inesperado;
Se você remover o semicolon, ainda relatará um erro. Não discutiremos a situação no modo não rigoroso aqui. Se você estiver interessado, você pode experimentar você mesmo.
As variáveis declaradas por const são semelhantes às declaradas por Let. A diferença é que as variáveis declaradas por const só podem ser atribuídas valores durante a declaração e não podem ser modificadas à vontade, caso contrário, causará a SyntaxError (erro de sintaxe).
const max_cat_size_kg = 3000; // correto max_cat_size_kg = 5000; // Erro de sintaxe (SyntaxError) max_cat_size_kg ++; // Embora tenha mudado, ainda causa erros de sintaxe
Obviamente, o design da especificação é sábio o suficiente. Depois de declarar variáveis com const, você deve atribuir valores, caso contrário, um erro de sintaxe também será lançado.
const the Fairest; // ainda é um erro de sintaxe, seu cara infeliz