Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем рубрику Заметки по JavaScript, в которой уже были публикации: JavaScript строки и символы JavaScript, JavaScript числа, преобразование числа в строку JavaScript и строку в число. В рамках рубрики Заметки по JavaScript были публикации: JavaScript операторы (void JavaScript, delete JavaScript, typeof JavaScript, new JavaScript), вставка JavaScript в HTML, типы данных JavaScript, логические значения true JavaScript и false JavaScript и специальные значения null JavaScript и undefined JavaScript. В этой публикации я хотел бы поговорить о том, о чем должен был написать еще в первой публикации, а именно про лексическую структуру JavaScript и синтаксис JavaScript.
Для тех, кто не понимает термин лексическая структура, поясню: лексическая структура языка в нашем случае JavaScript – это набор правил, которые необходимо соблюдать при написание программ, сценариев, скриптов, чтобы избежать синтаксических ошибок. Прежде, чем двигаться дальше, предлагаю внести немного ясности в такой вопрос, что же такое JavaScript. Ну, во-первых, JavaScript – это не Java и даже не упрощенная версия языка Java, как думают некоторые, хотя у них есть синтаксическая схожесть и оба этих языка имеют возможность предоставить результаты своей работы web браузеру. JavaScript – интерпретируемый язык программирования, но это не означает, что он простой и многие(в том числе и автор) считают и используют этот язык только как язык сценариев, не используя возможности JavaScriptв полную силу. Официальное название языка JavaScript – ECMAScript, но все уже настолько привыкли, что называют его JavaScript, разрабатывался JavaScript кампанией Netscape. А спецификация стандартизирующее ядро языка JavaScript называется ECMA-262. Ну что, же думаю, что можно приступить, к разбору лексической структуры JavaScript.
Данная публикация будет посвящена: регистру символов JavaScript, набору символов JavaScript, пробельным символам JavaScript, комментариям JavaScript, литералам и идентификаторам JavaScript, зарезервированным словам JavaScript и в конце публикации будут приведены рекомендации по именованию переменных, методов, классов, функций JavaScript (верблюжья нотация).
Набор символов JavaScript. Регистр символов JavaScript, чувствительность регистра. Пробельные символы JavaScript.
Давайте приступим, и поговорим о том наборе символов, который можно использовать при написание программ на JavaScript, поговорим о том чувствителен или нет JavaScript к регистру, а так же попробуем вместе разобраться, как интерпретатор JavaScript относится к пробельным символам. И нужно ли ставить точку с запятой, при написании JavaScript инструкций.
Набор символов, используемых в языке JavaScript. Символы JavaScript.
Первое, что следует рассмотреть – это набор символов, который можно использовать при написание программ, скриптов или сценариев на JavaScript, проще говоря, JavaScript символы. В JavaScript используется набор символов Unicode, так как шестнадцатиразрядная кодировка Unicode обеспечивает представление практически всех письменных языков, в отличие от ASCII или ISO Latin, с помощью этих кодировок можно представить только западноевропейские языки.
Но если ваш редактор не поддерживает Unicode и в нем есть только кодировки типа ASCII, не переживайте, ASCII и ISO Latin, представляют из себя подмножество Unicode, и любая программа, написанная при помощи набора символов из ASCII, ISO Latin или других Unicode подмножеств будет работать корректно.
Так как в JavaScript используется кодировка Unicode, то соответственно в JavaScript каждый символ будет представлен двумя байтами, но на работе Ваших программ этот факт никак не отразится и вы можете просто про это забыть. На данный момент, стандартом ECMAScript разрешено использовать Unicode символы в любом месте программы написанной на JavaScript, для нас русскоговорящих это означает, что мы можем давать имена переменным, функциям, новым объектам, используя русские буквы, раньше можно было использовать русские символы в JavaScript, только в комментариях и JavaScript строках.
Чувствительность к регистру символов в JavaScript. Регистр JavaScript.
И так, мы уже разобрались, какие символы можно использовать при написание JavaScript программ, а какие нельзя. Теперь давайте посмотрим, как JavaScript относится к регистру символов. Сразу скажу, что JavaScript – это язык, чувствительный к регистру. А это означает следующее: ключевые слова, имена переменных, функций и любых других идентификаторов JavaScript должны содержать одинаковый набор прописных и строчных букв. Это означает, например, что ключевое слово switch, следует писать как switch, а не Switch или SWITCH. Или это означает, что newVar, NewVar, newvar, newVAR, NEWVAR – имена пяти различных JavaScript переменных. Естественно, встраивать JavaScript мы будем в HTML-страницы, а как вы знаете, язык разметки гипертекстов не чувствителен к регистру. А некоторые JavaScript объекты и свойства этих объектов имеют те же имена, что и HTML тэги и HTML атрибуты. Что может привести к путанице. Например, обработчик событий onclick в HTML обычно пишут как “onClick”, но в JavaScript, такие вольности не допустимы и писать его надо “onclick” – и никак иначе.
Пробельные символы JavaScript, необязательные точки с запятой при написание JavaScript инструкций
Про пробельные символы и то какие они бывают и для чего используются в HTML я говорил в рубрике Заметки по HTML, в публикации HTML теги, часть 1. Тэг PRE авторское форматирование, тэг BR перенос строк. Пробельные символы. А в этой публикации, я просто скажу, что интерпретатор JavaScript будет игнорировать все пробелы, табуляции, переносы строк присутствующие в коде программы, пробельных символов в JavaScript нет, а переносы строк в JavaScript строках создаются при помощи управляющей последовательности JavaScript.
Для нас это означает, что весь JavaScript код мы можем написать в одну строчку и он будет работать, а так же это означает, что пробельные символы(табуляции, пробелы и переносы строк) можно использовать сколь угодно много при написание JavaScript сценариев, как вам будет удобно читать код так и пишите. Так же в JavaScript необязательно ставить точку с запятой в конце каждой инструкции, в том случае, если каждая новая инструкция пишется на новой строчке. JavaScript интерпретатор будет делать это за вас. То есть если вы напишите:
[php]
var1 = 10
var2 = 12
[/php]
Интерпретатор поймет вас правильно и код будет исполнен, но в ситуации когда вы напишите эти две инструкции в одну строчку, точка с запятой должна ставиться обязательно, после каждой инструкции, иначе код не будет исполнен и произойдет ошибка.
[php]var1 = 10; var2 = 12; [/php]
Также, пропуск точек с запятой считается дурным тоном, и поэтому выработайте привычку ставить точку с запятой после каждой JavaScript инструкции, в последствие это вам поможет избежать ошибок. Так как интерпретатор все-таки машина, а не человек, и действует он согласно заложенным ему инструкциям. То есть, когда он видит законченную инструкцию на новой строке без точки с запятой, он в любом случае ее туда поставит. Чаще всего неприятные ситуации связанные с тем, что интерпретатор JavaScript проставляет автоматически точки с запятой, происходят с инструкциями return, break и continue. Например, написали вы следующий код:
[php]
return
true;
[/php]
А машина решит, что вы в этой ситуации забыли поставить точку с запятой и сделает это за вас. И будет исполнять этот код как две различных инструкции, а не как одну:
[php]
return;
true;
[/php]
Но нам-то необходима была одна инструкция:
[php]return true;[/php]
Поэтому, при написание JavaScript программ будьте внимательны к переносам строк, которые вы используете, а так же правильно заканчивайте свои инструкции.
JavaScript комментарии. Литералы и идентификаторы JavaScript. Зарезервированные слова JavaScript.
В этой части публикации я хотел бы остановиться на таких моментах как: комментарии JavaScript и как их писать в JavaScript программе. Так же немного затронем тему литералов JavaScript и идентификаторов JavaScript , также будет список зарезервированных слов JavaScript.
JavaScript комментарии
Начнем мы с комментариев JavaScript, ни для кого не секрет, что в процессе написания кода программы, неплохо было бы оставлять для самого себя какие-то небольшие пометки для того, чтобы спустя какое-то время открыть код и быстро найти нужный фрагмент, который мы захотим исправить или удалить, так же неплохо было бы временно отключать какие-то фрагменты кода, при этом их не удаляя. Для всех этих целей как раз таки и используются комментарии. JavaScript поддерживает два стиля комментариев: стиль C++ и стиль C.
Можете называть их строчные комментарии JavaScript и блочные комментарии JavaScript, мне самому удобнее их так называть. И так, для того, чтобы написать строчный комментарий, просто напишите в начале строки // и весь текст до конца строки, который будет идти сразу после //, будет проигнорирован JavaScript интерпретатором.
Блочные комментарии позволяют отключать целые фрагменты кода, то есть сразу несколько строк. Начало блочного комментария символизирует JavaScript /*, а концом блочного комментария JavaScript является */. Весь текст написанный между символами /*…*/ не будет обрабатываться. При написание блочных комментариев соблюдайте одно не хитрое правило: блочные комментарии(в стиле С) могут состоять из нескольких строк, но не могут быть вложенными, то есть нельзя внутрь одного комментария помещать другой /*…/*…*/…*/ — так делать нельзя.
Литералы и элементарные типы данных JavaScript
Тут наверное все очевидно, без значений с которыми мы могли бы манипулировать, не было бы никаких языков программирования, в том числе и JavaScript. Литерал – это не более чем значение, которое указывается непосредственно в тексте программы. Давайте посмотрим, какие значения можно использовать в JavaScript и о некоторых поговорим по подробней о JavaScript литералах.
Примеры литералов в JavaScript:
[php]
16 // Число шестнадцать
3.1 // Число три целых одна десятая
“John” // Текстовая строка
null //Отсутствие объекта
true //Логическое значение
[/php]
В данном примере присутствует практически все возможные типы данных JavaScript, которые могут использоваться как литералы. Числовые типы данных JavaScript, строковые типы данных JavaScript, null – это тоже тип данных в JavaScript, литералом в JavaScript могут выступать логические типы данных, в примере нет регулярных выражений, но JavaScript допускает их использование в качестве литералов.
Идентификаторы JavaScript
Идентификатор – это всего лишь имя. В JavaScript идентификаторами являются имена переменных и функция, правда есть еще метки некоторых циклов JavaScript. Правила наименования в JavaScript совпадают с правилами наименования в других языках программирования. Имя переменной или JavaScript функции должно начинаться с буквы, знака подчеркивания или знака доллара. Примеры идентификаторов JavaScript:
[php]
a
my_var
k234g_21g
_var
$Vasya
[/php]
По сути в идентификаторе JavaScript могут содержаться все буквы и цифры из всего набора символов Unicode, правда я бы советовал использовать только буквы латинского алфавита. Обратите внимание, что идентификаторы не могут совпадать ни с одним из ключевых слов JavaScript (именами встроенных методов JavaScript, таких, как alert (), confirm (), и пр.)
Зарезервированные слова в JavaScript
Зарезервированные слова JavaScript – это такие слова, которые нельзя использовать при именование JavaScript функций, переменных и меток при написание JavaScript программ и сценариев! Зарезервированные слова имеет особое значение для интерпретатора JavaScript и являются частью синтаксиса JavaScript.
Список зарезервированных слов в JavaScript:
- breack
- catch
- default
- do
- finaly
- function
- in
- new
- return
- try
- var
- while
- case
- continue
- delete
- else
- for
- if
- instanceof
- null
- switch
- throw
- typeof
- void
- with
Как вы видите в список зарезервированных слов JavaScript вошли ключевые слова, обозначающие JavaScript операторы, JavaScript инструкции, типы данных JavaScript.
Слова, зарезервированные для расширения JavaScript
Тут представлены слова, которые нельзя использовать при именование переменных JavaScript и функций, они хоть и не используются в данный момент, но могут быть использованы в дальнейшем для расширения языка JavaScript
Список всех зарезервированных слов для расширения языка JavaScript:
- abstract
- boolean
- byte
- char
- class
- const
- debugger
- double
- enum
- export
- extends
- final
- float
- goto
- implements
- import
- int
- interface
- long
- native
- package
- private
- protected
- public
- short
- static
- super
- synchronized
- throws
- transient
- volatile
Идентификаторы, которых следует избегать при именовании JavaScript переменных и функций
Также не стоит использовать в качестве имен переменных и функций идентификаторы глобальных переменных и функций, которые уже определены в JavaScript. Тут собственно два варианта, либо произойдет ошибка, если свойство определено, как доступное только для чтения, либо глобальная переменная буде переопределена и соответственно будет иметь указанное вами значение, данное действо не стоит совершать, за исключением личной необходимости в оном.
Рекомендации к именованию JavaScript переменных, методов, функций. Верблюжья нотация, Camel notation.
Также имеются некоторые рекомендации по именованию JavaScript функций, методов и переменных. Заметьте, это всего лишь рекомендации, по-другому, – правила хорошего тона. Интерпретатор JavaScript вас поймет, даже если вы не будете ими руководствоваться.
Эти рекомендации по именованию в JavaScript называются верблюжьи нотации. И заключаются эти рекомендации в следующем:
- Все имена JavaScript переменных должны писаться маленькими буквами, например, имя переменно var1 – пишется в нижнем регистре;
- На стыке двух слов следует использовать заглавную букву, например, я написал функцию на JavaScript, которая предназначена для подсчета посетителей сайта, и назвать я ее захотел, как счетчик пользователей – userCounter, обратите внимание, первое слово user написано с маленькой буквы, а Counter с большой;
- Переменные и свойства классов должны быть существительными, например, var, user, book, price и так далее;
- Массивы и коллекции JavaScript именуются существительными во множественном числе, например, массив, в котором будут храниться данные пользователей зарегистрированных на сайте можно назвать users;
- В качестве имен функций и методов JavaScript следует использовать глаголы;
- Имена JavaScript классов следует писать с большой буквы;
Это всего лишь рекомендации, но если им следовать, то читать свой код, а уж тем более чужой код становится намного легче, а сам код будет более понятным и с ним будет проще разобраться.
На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru. Не забываем комментировать и делиться с друзьями;)
Pingback: Artur
Всегда пожалуйста, рад что вам понравилось! Стараюсь писать руководствуясь принципом от простого к сложно и это относится не только к рубрике уроки JavaScript для начинающих, но и всего ресурса в целом! Есть идея записать видео уроки по JavaScript, потому что многие моменты разработки на JavaScript очень тяжело объяснить текстом, не демонстрируя примером, а если и возможно, то публикация становится долгой и нудной, поэтому в скором времени вы сможете, наверное, увидеть видео уроки JavaScript!