Перейти к основному содержимому

5.01. Ключевые слова в JavaScript

Разработчику Архитектору

Ключевые слова в JavaScript

JavaScript содержит набор зарезервированных слов, которые имеют специальное значение в языке. Эти слова нельзя использовать в качестве идентификаторов для переменных, функций или классов.

Управляющие структуры

Ключевое словоЗначениеПример
ifВыполняет блок кода при истинности условияif (x > 0) { console.log("Положительное"); }
elseВыполняет альтернативный блок кода при ложности условия ifif (x > 0) { console.log("Положительное"); } else { console.log("Отрицательное"); }
switchВыбирает один из множества блоков кода для выполненияswitch (day) { case 1: console.log("Понедельник"); break; }
caseОпределяет вариант в конструкции switchcase "admin": accessLevel = 10; break;
defaultОпределяет блок кода по умолчанию в конструкции switchswitch (value) { case 1: break; default: console.log("Неизвестное значение"); }
breakПрерывает выполнение цикла или конструкции switchfor (let i = 0; i < 10; i++) { if (i === 5) break; }
continueПропускает текущую итерацию цикла и переходит к следующейfor (let i = 0; i < 10; i++) { if (i % 2 === 0) continue; console.log(i); }

Циклы

Ключевое словоЗначениеПример
forСоздает цикл с инициализацией, условием и финальным выражениемfor (let i = 0; i < 5; i++) { console.log(i); }
whileВыполняет блок кода, пока условие истинноwhile (count < 10) { count++; }
doВыполняет блок кода один раз, затем повторяет при истинности условияdo { console.log(count); count++; } while (count < 5);
for...ofПеребирает итерируемые объекты (массивы, строки, Map, Set)for (let char of "hello") { console.log(char); }
for...inПеребирает перечисляемые свойства объектаfor (let key in obj) { console.log(key + ": " + obj[key]); }

Объявление переменных и функций

Ключевое словоЗначениеПример
varОбъявляет переменную с функциональной областью видимостиvar x = 10;
letОбъявляет переменную с блочной областью видимостиlet y = 20;
constОбъявляет константу с блочной областью видимостиconst PI = 3.14;
functionОбъявляет функциюfunction greet() { console.log("Привет!"); }
returnВозвращает значение из функции и завершает её выполнениеfunction add(a, b) { return a + b; }
thisСсылается на текущий контекст выполненияfunction Person(name) { this.name = name; }
argumentsМассивоподобный объект с аргументами функцииfunction sum() { return arguments[0] + arguments[1]; }

Классы и объекты

Ключевое словоЗначениеПример
classОбъявляет классclass Animal { constructor(name) { this.name = name; } }
newСоздает экземпляр объекта или классаlet obj = new Object();
extendsСоздает дочерний класс, наследующий от родительскогоclass Dog extends Animal { bark() { console.log("Гав!"); } }
superВызывает конструктор родительского класса или его методыclass Child extends Parent { constructor() { super(); } }
staticОпределяет статический метод или свойство классаclass MathUtil { static add(a, b) { return a + b; } }
getОпределяет геттер для свойства объектаclass Temperature { get celsius() { return this._celsius; } }
setОпределяет сеттер для свойства объектаclass Temperature { set celsius(value) { this._celsius = value; } }

Обработка ошибок

Ключевое словоЗначениеПример
tryОпределяет блок кода для проверки на ошибкиtry { riskyOperation(); } catch (error) { console.log(error); }
catchОбрабатывает ошибку, выброшенную в блоке trytry { } catch (error) { console.log("Ошибка: " + error.message); }
finallyВыполняет блок кода после try/catch независимо от результатаtry { } catch (e) { } finally { console.log("Завершено"); }
throwГенерирует пользовательскую ошибкуthrow new Error("Что-то пошло не так");

Модули

Ключевое словоЗначениеПример
importИмпортирует функции, объекты или примитивы из модуляimport { func } from './module.js';
exportЭкспортирует функции, объекты или примитивы для использования в других модуляхexport function helper() { }
defaultУказывает значение по умолчанию для экспортаexport default class App { }
fromУказывает источник импортаimport React from 'react';
asСоздает псевдоним для импортированного или экспортированного элементаimport { func as myFunc } from './module.js';

Асинхронное программирование

Ключевое словоЗначениеПример
asyncОбъявляет асинхронную функциюasync function fetchData() { return await fetch(url); }
awaitОжидает завершения промиса внутри асинхронной функцииlet data = await fetch(url);
yieldПриостанавливает выполнение генератора и возвращает значениеfunction* gen() { yield 1; yield 2; }

Прочие ключевые слова

Ключевое словоЗначениеПример
typeofВозвращает строку с типом операндаtypeof 42; // "number"
instanceofПроверяет, является ли объект экземпляром классаarr instanceof Array; // true
voidВыполняет выражение и возвращает undefinedvoid 0; // undefined
deleteУдаляет свойство объектаdelete obj.property;
inПроверяет наличие свойства в объекте'name' in obj; // true
ofИспользуется в цикле for...of для перебора итерируемых объектовfor (let item of array) { }
debuggerУстанавливает точку останова для отладчикаdebugger; // остановка выполнения

Зарезервированные слова (нельзя использовать)

Ключевое словоЗначение
enumЗарезервировано для будущего использования
implementsЗарезервировано для будущего использования
interfaceЗарезервировано для будущего использования
packageЗарезервировано для будущего использования
privateЗарезервировано для будущего использования
protectedЗарезервировано для будущего использования
publicЗарезервировано для будущего использования
abstractЗарезервировано для будущего использования
finalЗарезервировано для будущего использования
nativeЗарезервировано для будущего использования
synchronizedЗарезервировано для будущего использования
throwsЗарезервировано для будущего использования
transientЗарезервировано для будущего использования
volatileЗарезервировано для будущего использования

Зарезервированные слова в строгом режиме

Ключевое словоЗначение
letВ строгом режиме зарезервировано для объявления переменных
staticВ строгом режиме зарезервировано для статических методов
yieldВ строгом режиме зарезервировано для генераторов
implementsВ строгом режиме зарезервировано
interfaceВ строгом режиме зарезервировано
packageВ строгом режиме зарезервировано
privateВ строгом режиме зарезервировано
protectedВ строгом режиме зарезервировано
publicВ строгом режиме зарезервировано

Логические операторы и литералы

Ключевое словоЗначениеПример
trueБулево значение "истина"let isActive = true;
falseБулево значение "ложь"let isEmpty = false;
nullЗначение "ничего" или "пусто"let value = null;
undefinedЗначение "не определено"let x; console.log(x); // undefined
NaN"Не число" (результат недопустимой математической операции)let result = 0 / 0; // NaN

Контекст выполнения

Ключевое словоЗначениеПример
withРасширяет цепочку областей видимости (не рекомендуется)with (obj) { console.log(property); }
evalВыполняет строку как код JavaScripteval("console.log('Привет')");