Недавно я рассказал про ключевые слова РНР. Ну и, раз уж пошла такая пьянка, то решил рассказать про то же самое для JavaScript. Всё таки и PHP, и JavaScript можно считать праотцами веб-разработки. Это сейчас появились всякие Питоны, а кто-то использует C# или даже Delphi. Но не смотря на это, PHP и JavaScript до сих пор остаются одними из главных языков для веб-разработки (PHP для серверной части, JavaScript - для клиентской).
Вот список основных зарезервированных (ключевых) слов JavaScript:
Также следует знать, что в стандарте ECMAScript, который является основой для JavaScript, зарезервированное слово - это некое имя, которое нельзя использовать в качестве идентификатора. Многие ключевые слова являются зарезервированными словами, но некоторые - нет, а некоторые зарезервированы только в определенных контекстах.
Например, if и while всегда являются зарезервированными словами, а слово await зарезервировано только внутри асинхронных функций и модулей. Слово async не зарезервировано, его можно использовать в качестве имени переменной или метки оператора без ограничений.
Существует пять категорий имен идентификаторов:
- Те, которые всегда разрешены в качестве идентификаторов и не являются ключевыми словами, такие как Math, window, toString и _
- Те, которые никогда не разрешается использовать в качестве идентификаторов, а именно зарезервированные слова, перечисленные ниже, за исключением await и yield
- Те, которые могут быть разрешены в качестве идентификаторов в зависимости от контекста, а именно await и yield
- Те, которые контекстуально запрещены в качестве идентификаторов в коде строгого режима: let, static, implements, interface, package, private, protected и public
- Те, которые всегда разрешены в качестве идентификаторов, но также отображаются как ключевые слова в определенных синтаксических конструкциях, в местах, где идентификатор не разрешен: as, async, from, get, meta, of, set и target.
Вот список зарезервированных слов ECMA:
await break case catch class const continue debugger default delete do else enum export extends false finally for function if import in instanceof new null return super switch this throw true try typeof var void while with yield
Ну а вообще ключевые слова использовать стоит с осторожностью. Стандарты время от времени меняются, и кто знает, как это всё будет работать через несколько лет. Поэтому по возможности следует обходиться “традиционным” набором слов.
Кроме того, следует избегать использования идентификаторов глобальных переменных и функций, предопределенных в языке JavaScript. Если попытаться создать переменную или функцию с таким именем, то это будет приводить либо к ошибке (если свойство определено как доступное только для чтения), либо к переопределению глобальной переменной или функции, чего точно не стоит делать, если вашей целью не является переопределение.
Ниже приведены слова, которые не следует использовать в качестве идентификаторов (хотя это и возможно), поскольку они являются именами глобальных переменных и функций, определяемых стандартом ECMAScript. Конкретные реализации могут содержать свои предопределенные элементы с глобальной областью видимости, кроме того, каждая конкретная платформа JavaScript (клиентская, серверная и прочие) может еще больше расширять этот список.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.