Включение скриптов на языке JavaScript в HTML-код
Традиционное вкючение скрипта тег <script>, имело вид:
<!-- пример # 1: шаблон HTML для скрипта -->
<html>
<head>
<title> Шаблон HTML </title>
<script language="javascript">
<!--Маскируемся, начало JavaScript
//…код скрипта
// снятие маскировки; конец JavaScript -->
</script>
</head>
<body >
</body></html>
В настоящее время использование атрибута language является устаревшим. Вместо него используется атрибут type, значением type является "text/javascript":
<script type="text/javascript">
//JavaScript код
</script>
Предпочтительно располагать тег script внутри тега head, т.к. это гарантирует выполнение скрипта до начала загрузки основного HTML-кода страницы. Тег script может располагаться в любом месте HTML. Код, содержащийся внутри, будет выполнен незамедлительно, если этот код не функция.
Кроме того, код скрипта можно хранить в отдельном файле с расширением .js – в этом случае в HTML-коде скрипт объявляется с помощью тега script
с атрибутом src, в котором прописывается путь к файлу.
<script type="text/javascript" src="/jspr/pr.js"></script>
В этом варианте в директории /jspr/ должен находиться файл pr.js, который содержит код.
Отладка скриптов JavaScript
Наиболее распространенный способ отладки заключается в многократном вызове метода alert() объекта window, который выводит стандартное окно
с текстом и кнопкой OK или других методов, выводящих окна, например confirm() и prompt():
<!-- пример # 2: Вывод текста в окно -->
<html> <head>
<title> вывод окна</title>
<script type="text/javascript">
alert("Вас приветствует JavaScript и метод alert()!");
confirm("Метод confirm, выберите вариант !");
prompt("Метод prompt(),Введите Ваше имя");
</script>
</head>
<body >
<P> <CENTER>
<H1 style="color:blue">Вывод окон: alert(), confirm() и prompt() </h1>
<HR><P><P>Cтраница документа </center>
</body> </html>
Помимо этого, существует более продвинутый способ отладки.
Если используется MS Visual Studio, потребуется отключить в браузере Internet Explorer параметр Disable script debugging, который находится
в настройках браузера на закладке Advanced. После этого можно использовать ключевое слово debugger; – что вызовет Visual Studio, позволив шаг за шагом пройти по скрипту и просмотреть значения любых переменных.
Кроме этого, в браузере Internet Explorer можно воспользоваться пунктом меню View > Script Debugger > Break at Next Statement, в этом случае Visual Studio будет запущена, как только будет выполнена какая-либо команда JavaScript.
Для других браузеров (не от компании Microsoft) такой способ не подойдет, однако практически для каждого браузера написаны специальные компоненты, которые также позволяют производить отладку скриптов.
Типы данных
Переменные в JavaScript объявляются с помощью ключевого слова var, например:
var x;
После этого можно задать значение переменной:
x = “Sample string”;
Язык JavaScript позволяет создавать переменные «на лету» без их объявления, например:
y = “Second string”;
При этом переменная y будет создана, и в памяти будет отведено для нее место, однако такая практика затрудняет чтение и отладку скрипта.
В языке JavaScript переменные не имеют строго закрепленного типа, тип переменной определяется данными, которые она хранит. Например, можно объ-
явить переменную и присвоить ей число, а затем присвоить строку.
JavaScript поддерживает пять базовых типов данных: Number – числа; String – строки; Boolean – Булев тип; Undefined – неопределенный; Null - пустой. Эти пять типов данных называются базовыми, т.к. на основе их строятся более сложные типы данных. Фактический интерес с точки зрения хранения данных представляют три: числа, строки и логические значения, неопределенный и пустой типы представляют интерес в определенных ситуациях.
Числа
В языке JavaScript численный тип данных включает целые и вещественные числа. Целые числа могут принимать значения от –253 до 253, вещественные могут принимать большие значения в пределах ±1.7976 x 10308 или быть точными в пределах ±2.2250 x 10-308.
Числа также могут записываться в экспоненциальной форме.
Для записи целого шестнадцатеричного числа в начале ставится ноль, затем буква x, затем само число, которое может содержать цифры от 0 до 9 и буквы от A до F.
Числа в шестнадцатеричной системе счисления могут пригодиться при использовании битовых операций, а также для хранения цветов – для Web все цвета хранятся в шестнадцатеричном виде.
В языке JavaScript также имеется возможность записи чисел в восьмеричной системе счисления: для записи числа в начале ставится 0, затем идут цифры от 0 до 7.
Специальные числа
Если результат математической операции выходит за допустимые пределы, переменная принимает значение Infinity – бесконечность. При совершении любых операций над таким числом результатом будет бесконечность. При сравнении положительная бесконечность всегда больше любого действительного числа, и наоборот, отрицательная бесконечность всегда меньше любого действительного числа.
Еще одним важным специальным значением является NaN – «не число» (not a number). Типичным примером операции, которая возвращает NaN, является деление на ноль. Для определения, является ли значение переменной NaN, используется функция isNaN(), которая возвращает true, если число является действиительным (включая бесконечность), и false, если значение переменной NaN.
К специальным числам относятся максимальное и минимальное значения, которые может принимать переменная. Все специальные числа приведены в таблице:
Специальное число | Название |
Number.MAX_VALUE | Максимальное значение числа |
Number.MIN_VALUE | Минимальное значение числа |
Number.NaN | Не число |
Number.POSITIVE_INFINITY | Положительная бесконечность |
Number.NEGATIVE_INFINITY | Отрицательная бесконечность |
Строки
Строка – это последовательность символов огрниченная двойными или одинарными кавычками.
После создания строки она имеет одно свойство – length, возвращающее длину строки, и большое количество методов:
charAt(index : Number) : String – возвращает символ, находящийся на определенной позиции;
concat([string1 : String [, ... [, stringN : String]]]]) : String – соединяет строки (аналогично оператору «+»);
indexOf(subString : String [, startIndex : Number]) : Number – возвращает номер вхождения подстроки в строку, необязательным параметром является номер символа, с которого начинается поиск. Если подстрока не найдена, возвращается -1. Поиск выполняется слева направо, для поиска справа налево используется метод lastIndexOf(), который имеет аналогичный синтаксис;
replace(rgExp : RegExp, replaceText : String) : String – выполняет замену регулярного выражения строкой;
split([ separator : { String | RegExp } [, limit : Number]]) : Array – разбивает строку на массив подстрок. В качестве первого параметра передается разделитель, на основе которого производится разбиение, если разделитель не указан, возвращается массив, содержащий один элемент с исходной строкой. Второй параметр определяет максимальное количество элементов в возвращаемом массиве;
substr(start : Number [, length : Number]) : String – возвращает подстроку, которая начинается с определенной позиции и имеет определенную длину;
substring(start : Number, end : Number) : String – возвращает подстроку, которая начинается и заканчивается в позициях, определенных параметрами.
Булев тип
Переменные булевого типа могут принимать одно из двух значения: true – истина; false – ложь. Переменные булевого типа часто используются в условном операторе if. Пример:
var doAlert = true;
if (doAlert) { alert(“Hello, World!”); }