Ключевые слова Javascript
В этой статье вы познакомитесь поближе с ключевыми словами в Javascript: с теми, которые были, есть и будут. А также узнаете, в каких случаях их все-таки можно использовать и не бояться последствий.
Ключевые слова в JavaScript — это зарезервированные идентификаторы, которые имеют определенную функциональность и не могут быть использованы в качестве имен переменных или функций.
Актуальный словарь
- var — объявляет переменную с функциональной или глобальной областью видимости
- let — объявляет переменную с блочной областью видимости
- const — объявляет константу
- function — определяет функцию
- return — возвращает значение из функции или прерывает ее выполнение
- class — определяет класс (специальный тип объекта)
- if — начинает условный оператор if, который выполняет блок кода, если условие истинно
- else — определяет блок кода для выполнения, если условие в операторе if или else if ложно
- switch — начинает оператор switch, который проверяет значение на соответствие разным случаям (case) и выполняет соответствующий блок кода
- case — определяет блок кода для выполнения в операторе switch
- default — определяет блок кода по умолчанию для выполнения в операторе switch
- break — прерывает выполнение цикла или оператора switch
- continue — пропускает текущую итерацию цикла и продолжает следующую
- for — начинает цикл for, который повторяется определенное количество раз или пока выполняется условие
- while — начинает цикл while, который повторяется, пока выполняется условие
- do — начинает блок кода для выполнения в цикле do...while.
- try — начинает блок кода, который может вызвать ошибку или исключение, и пытается выполнить его
- catch — определяет блок кода для обработки ошибок в операторе try...catch
- finally — определяет блок кода для выполнения после оператора try...catch, независимо от того, была ли ошибка или нет
- debugger — вызывает отладчик (если он доступен) для проверки кода
- delete — удаляет свойство объекта или элемент массива
- export — экспортирует значение или функцию из модуля для использования в других модулях
- extends — наследует свойства и методы от другого класса
- import — импортирует значение или функцию из другого модуля для использования в текущем модуле
- in — проверяет, есть ли свойство в объекте или индекс в массиве
- instanceof — проверяет, является ли объект экземпляром определенного класса или типа
- new — создает новый объект с помощью конструктора
- null — представляет отсутствие значения или объекта
- super — вызывает конструктор или метод родительского класса
- this — указывает на текущий объект или контекст выполнения функции
- throw — выбрасывает ошибку или исключение, которое может быть поймано и обработано в операторе try...catch
- typeof — возвращает тип значения или переменной в виде строки
- void — выполняет выражение, но не возвращает его значение
- with — начинает блок кода, в котором можно использовать свойства объекта без указания его имени
- yield — приостанавливает выполнение функции-генератора и возвращает значение.
Исключения в использовании зарезервированных слов
Хотя зарезервированные слова не могут быть использованы в качестве идентификаторов, они могут быть использованы в качестве свойств объектов или строковых литералов, например:
var obj = {
for: 'loop', // это свойство объекта с именем for
while: 'cycle', // это свойство объекта с именем while
break: 'stop' // это свойство объекта с именем break
};
console.log(obj.for); // выводит loop
console.log(obj['while']); // выводит cycle
console.log(obj.break); // выводит stop
var str = 'for while break'; // это строковый литерал, содержащий зарезервированные слова
console.log(str); // выводит for while break
Ключевые слова, зарезервированные на будущее
Кроме ключевых слов, в JavaScript есть также слова, которые зарезервированы на будущее, то есть они могут стать ключевыми словами в будущих версиях языка. Давайте разберемся, за что отвечает каждое из этих слов:
- await — ожидает выполнения асинхронной операции или функции
- enum — определяет перечисление (набор именованных констант)
- implements — указывает, что класс реализует интерфейс (набор свойств и методов, которые должен иметь класс)
- interface — определяет интерфейс (набор свойств и методов, которые должен иметь класс)
- package — определяет пакет (группу связанных модулей или классов)
- private — указывает, что свойство или метод класса доступно только внутри этого класса
- protected — указывает, что свойство или метод класса доступно только внутри этого класса или его наследников
- public — указывает, что свойство или метод класса доступно для всех
- static — указывает, что свойство или метод класса принадлежит самому классу, а не его экземплярам.
Ключевые слова в более старых версиях языка
В более старых версиях JavaScript были также зарезервированы некоторые слова, которые использовались в других языках программирования, таких как Java или C++. У некоторых пользователей сохранились старые версии браузеров на компьютерах, которые не поддерживают ES5 или ES6 стандарты. Если ваш проект рассчитан такой случай, то вам также придется запомнить этот список слов:
- abstract — определяет абстрактный класс или метод (тот, который не может быть создан или реализован напрямую)
- boolean — определяет логический тип данных (тот, который может принимать значения true или false)
- byte — определяет целочисленный тип данных (тот, который может принимать значения от -128 до 127)
- char — определяет символьный тип данных (тот, который может принимать значения от 0 до 65535)
- double — определяет дробный тип данных с двойной точностью (тот, который может принимать значения с 15 знаками после запятой)
- final — указывает, что значение, переменная, свойство или метод не может быть изменено или переопределено
- float — определяет дробный тип данных с одинарной точностью (тот, который может принимать значения с 7 знаками после запятой)
- goto — переходит к определенной метке в коде
- int — определяет целочисленный тип данных (тот, который может принимать значения от -2147483648 до 2147483647)
- long — определяет целочисленный тип данных с большим диапазоном значений (тот, который может принимать значения от –9223372036854775808 до 9223372036854775807)
- native — указывает, что метод реализован на другом языке программирования и вызывается из JavaScript
- short — определяет целочисленный тип данных с меньшим диапазоном значений (тот, который может принимать значения от -32768 до 32767)
- synchronized — указывает, что блок кода или метод может быть выполнен только одним потоком одновременно
- throws — указывает, что функция или метод может выбросить исключение при выполнении
- transient — указывает, что свойство объекта не должно быть сериализовано при сохранении объекта в файл или передаче по сети
- volatile — указывает, что значение переменной может быть изменено другими потоками без предупреждения.
На данный момент эти слова можно смело использовать для именования переменных и прочих шалостей в большинстве проектов, рассчитанных на современные браузеры.