Перейти к содержанию

const

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

1
const foo = 123;

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

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

1
2
3
4
5
6
7
8
// нечитаемо
if (x > 10) {
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии