Skip to content

Latest commit

 

History

History
65 lines (48 loc) · 2.81 KB

const.md

File metadata and controls

65 lines (48 loc) · 2.81 KB

const

const - это очень полезное дополнение, предлагаемое ES6 / TypeScript. Это позволяет делать переменные неизменяемыми. Это хорошо как с точки зрения документации, так и во время выполнения. Чтобы использовать в коде, просто замените var на const:

const foo = 123;

Предлагаемый синтаксис намного лучше, чем в других языках, которые вынуждают использовать что-то типа let constant foo, т. е. переменная + спецификатор поведения.

const является хорошей практикой для читаемости и для поддерживаемости кода, позволяет избегать такого использования:

// нечитаемо
if (x > 10) {
}

// намного лучше!
const maxRows = 10;
if (x > maxRows) {
}

const переменные нужно инициализировать

Пример ниже вызовет ошибку компилятора:

const foo; // Ошибка: const переменная должна быть инициализирована

Левая часть выражения не может быть константой

Константы являются неизменными после создания, поэтому если вы попробуете присвоить ей новое значение, вы получите ошибку компиляции:

const foo = 123;
foo = 456; // Ошибка: Левая часть выражения не может быть константой

Контекст блока

const создается в контексте блока, как и let:

const foo = 123;
if (true) {
    const foo = 456; // Корректно, потому что новая переменная ограничена контекстом блока `if`
}

Глубокая неизменность

const работает с объектами, а также защищает "ссылки" на переменные:

const foo = { bar: 123 };
foo = { bar: 456 }; // Ошибка : Левая часть выражения не может быть константой

Однако, const позволяет изменять подсвойства объектов:

const foo = { bar: 123 };
foo.bar = 456; // Корректно!
console.log(foo); // { bar: 456 }

Поэтому я рекомендую использовать const с примитивами или неизменяемыми структурами данных.