@ guest271314 - я переместил свой комментарий в ответ.
вая, что переменная объявлена сconst
не может быть переназначен или удален см.
Есть ли константы в JavaScript?
Ключевое слово JavaScript const
Можно ли удалить переменную, объявленную с использованием const??
почему можно переназначить значение переменной, объявленной сconst
в функции, переданной.then()
прикован кPromise.resolve()
гдеconst
переменная передается, но невозможно переназначитьconst
переменная с функцией, переданной в.then()
прикован кPromise
конструктор гдеconst
переменная передаетсяresolve()
параметрPromise
конструкторresolver
функционировать?
"use strict"
const state = "123";
Promise.resolve(state)
.then(state => {
console.log(state); // `"123"`
state = 456; // reassign `const` variable `state` to `"456"`
return state
})
.then(state => console.log(state)) // `"456"`
// not reached
.catch(err => console.error(err.message));
{
"use strict";
const state = "123";
new Promise(resolve => {
console.log(state); // `"123"`
state = "456"; // reassign `const` variable `state` to `456`
resolve(state);
})
.then(state => {
console.log(state);
})
// `Error: Assignment to constant variable.`
.catch(err => console.error(err.message));
}
Изменить, Обновлено
Чтобы прояснить основу и мотивацию для запроса, Вопрос представляет собой попытку определить, когда можно использовать идентификатор, который совпадает сconst
декларации, и когда эта процедура невозможна. По сути, попытка создать идентификатор, который выдает ошибку в любой области видимости, когда делается попытка присвоить идентификатору другое значение - будь то область действия функции, область блока или где-либо в коде - "superconst
"неопределитель" или наиболее близкий к этому описанию в настоящее время возможный, в зависимости от двигателя.Map
или жеWeakMap
или жеclass
ближайший у нас в настоящее время в новейших реализациях браузера?