Встраивание JS-кода в код страницы

 Код внутри тега

 Код в отдельном файле

 Комментарии в коде

 Литералы

                                 Экранирование символов

 

    Далее в тексте вместо JavaScript будет использовано сокращение JS !

 

Код JS, состоит из инструкций, выполняемых браузером; каждая инструкция должна оканчиваться знаком ; (точка с запятой).

Код JS может быть добавлен на страницу различными способами.

1.Встраивание JS-кода в код страницы

Для встраивания кода на страницу применяются теги <script> (открывающий) и </script> (закрывающий); код на JS вставляется между ними. Такой код может быть расположен между основными тегами <head> и </head> или <body> и </body>

 При размещения кода JavaScript важно помнить одну важную особенность: все элементы страницы загружаются браузером строго в том порядке, в котором они прописаны в файле.

 

Что это значит и почему это так важно?

Дело в том, что код JS может работать только с тем HTML-кодом, который уже загружен, т.е. находится в файле выше и, соответственно, уже загружен браузером.  Код, который находится ниже, загружается позже и поэтому не может быть использован в уже загруженном скрипте JS.

Однако здесь стоит учитывать, что к элементу (тегу) <script> могут применяться атрибуты, позволяющие управлять работой скрипта, т.е. указывающие, в какое время скрипт должен быть выполнен (например, сразу после завершения загрузки страницы).

Вместе с открывающим тегом обычно указывается атрибут type='text/javascript', однако это делать не обязательно, так как он уже установлен по умолчанию. Выглядит код обычно так:

  1   <script type="application/javascript">
  2         код JavaScript ;
  3   </script>

Такой скрипт будет выполнен сразу же, как только он будет загружен браузером. Однако, при необходимости вы можете это изменить при помощи атрибутов async и defer, но только при условии, что скрипт расположен в отдельном файле.

Атрибут async указывает, что получение и выполнение скрипта (расположенного в отдельном файле), будет происходить асинхронно, т.е. независимо от загрузки самой страницы скрипт будет запущен сразу после его загрузки.

  1   <script type="application/javascript" async src="js/file.js">
  2         код JavaScript ;
  3   </script>

Атрибут defer указывает, что получение скрипта происходит так же асинхронно, т.е. независимо от загрузки самой страницы, а вот выполнение скрипта будет отложено до тех пор, пока страница полностью не загрузится (о чём говорилось выше).

  1   <script type="application/javascript" defer src="js/file.js">
  2         код JavaScript ;
  3   </script>

Атрибут src используется для указания пути к файлу со скриптом. Так же может быть использован атрибут charset, указывающий кодировку этого файла.

 

2.Код в отдельном файле

Как правило, такие файлы хранятся в отдельных папках; такие папки могут быть где угодно - в компонентах, модулях, в шаблонах. Что бы подключить такой файл используется атрибут src:

  1    <script type="application/javascript" src="полный путь к файлу"></script>

 

3.Код внутри тега

Код JS может быть встроен внутрь HTML-тега, например, так:

  1    <a href="save.php" onclick="return confirm('Сохранить изменения?');"> Сохранить </a>

 

Разберём по порядку данный код.

Тег a создаёт ссылку, атрибут href указывает адрес файла, событие onclick указывает, что необходимо сделать, если пользователь кликнет левой кнопкой мыши по указанной ссылке. А вот в событии прописан (в кавычках) код JS:

"return confirm('Сохранить изменения?');"

Слово return означает, что должно быть возвращено какое-либо значение; confirm - это функция, которая заставляет браузер создать модальное окно и отразить надпись, указанную в скобках. 

Стоит обратить внимание на то, что в событии onclick может быть прописан не весь JS-код, а только имя функции, которая будет вызвана при клике левой кнопки мыши по ссылке; при этом сама функция прописывается отдельно:

  1    <script>
  2        function iCaution() {
  ...         тело функции
  7         }
  8    </script>
  ... 
 20   <a href="save.php" onclick="iCaution()"> Сохранить </a>

В приведённом примере функция прописана отдельно (строки 1-8), а в 20 строке она вызывается при помощи onclick.

 

 Комментарии в коде

Комментарии в код можно добавлять используя /* ... */ для многострочных комментариев и // для однострочных, например:

  1    <script> 
  2        function iCaution() {
  ...         тело функции   // комментарий на одной строке
  7         }
  8    </script>

 или

  1    <script> 
  2        function iCaution() {
  3         /*
  4           * комментарий,
  5           * расположенный 
  6           * на нескольких строках
  7         */
  ...         тело функции
 11        }
 12   </script>

 

Литералы

В JavaScript значения представляются при помощи литералов. 

Литерал строки. В JS любой текст (строки или отдельные слова, имена и т.д.) заключаются в кавычки: либо одинарные ' , либо двойные " . Для работы со строками применяются специальные символы (см. таблицу).

Таблица специальных символов JavaScript
\n Перенос на новую строку (аналогично br/ в HTML)
\f Перенос на новую страницу
\b Возврат 
\r Возврат каретки 
\t Табуляция
\v Вертикальная табуляция
\\ Обратная косая черта 
\' Одинарная кавычка
\" Двойная кавычка 
\*** Символ в кодировке ISO 8859-1, где *** - это три восьмеричных числа.
\x** Символ в кодировке ISO 8859-1, где ** - это два шестнадцатиричных числа.
\u**** Символ в Unicode, где **** - это четыре шестнадцатиричных числа.
\u{*****} Символ в UTF-32BE.

 Литерал целого числа. Целые числа записываются обычным способом в различных системах исчисления (десятичной, двоичной и т.д. Обратите внимание на то, что десятичное число не должно начинаться с нуля, иначе произойдёт ошибка, так как если число начинается с цифры "0" это будет воспринято как число в восьмеричном исчислении. Двоичные числа должны начинаться на "0b", шестнадцатеричные - "0x".


Числа с плавающей точкой. Числа с плавающей точкой прописываются в коде как обычно, без каких либо дополнительных символов. Стоит иметь ввиду, что в качестве десятичной точки применяется именно символ "точка", а не "запятая".


Логические литералы (Boolean). Имеют два значения: true (истина) и false (ложь).


Литерал массива. Эта тема будет подробно раскрыта в главе JavaScript.Массивы.


Литерал объекта - список, состоящий из пар имя_свойства/значение, принадлежащих этому объекту; список заключается в фигурные скобки { } . В качестве значений могут использоваться строки, числа, результаты вызова функций, значения переменных и .т.д. 

  1     var Number_of_Pages = 100
  2     var Book = { name: "Моя книга", volume: Number_of_Pages };

В приведённом примере свойству name объекта Book присваивается строка "Моя книга", а свойству volume - значение переменной Number_of_Pages.

В качестве имени свойства может быть использованы строка, пустая строка и даже число. Если имя свойства не является корректным (например, содержит недопустимые символы), оно быть заключено в кавычки. При обращении к таким свойствам используются квадратные скобки (см. пример ниже). Так же допускается вложение одного объекта в другой.

  1     var a = Book.name
  2     var a = Book["имя свойства"]

Так же при обращении к свойству, имя которого представляет собой число, необходимо либо использовать квадратные скобки (вторая строка в примере), либо использовать точку, как в первой строке примера, но заключать число в кавычки.


Литерал RegExp - это шаблон, расположенный между слешами:

  1     var a = /d+w/

 

Экранирование символов

Иногда возникает необходимость прописать какой-либо символ в виде обычного текста, который в коде может быть воспринят не как текст, а как определённый литерал (например,  [ { " ;  и т.д.). В этом случае применяется экранирование, т.е. перед соответствующим символом ставиться символ \ . Стоит иметь в виду, что если вы хотите прописать в строке этот символ, то его так же следует экранировать.

Так же стоит обратить внимание на применение этого символа для отмены переноса текста на другую строку. Если в коде какой-либо текст, оформленный в начале и в конце кавычками, расположен на нескольких строках, то переносы будут сохранены и при выводе данного текста; что бы эти переносы убрать и вывести текст на одной строке, вы можете применить символ \ : если его поставить в конце каждой строки кода, переносы будут отменены.