</script>
<body>
</body>
</html>
После запуска страницы с вышеприведенным кодом появится запрос (рис. 11.4), вслед за которым отобразится предупреждение.
Рис. 11.4. Работа с запросом
В этом примере для демонстрации работы метода prompt() использована переменная, а в методе alert() в качестве аргумента выступает выражение. Данные понятия будут введены далее в этой главе.
Примечание
В методе prompt() можно опустить второй аргумент, то есть указывать только одну строку. В этом случае различные браузеры по-разному реагируют: строка запроса может быть пустой, а может отображать ключевое слово undefined (не определено).
Метод confirm()
Метод confirm() отображает окно подтверждения, которое сходно с окном предупреждения, генерируемым методом alert(), но содержит две кнопки: OK и Cancel. В листинге 11.3 демонстрируется создание окна подтверждения, но в этом сценарии не делается разницы между кнопками OK и Cancel. Нажатие любой из кнопок просто закроет окно (рис. 11.5).
Рис. 11.5. Работа с подтверждением
Листинг 11.3. Работа с подтверждением<html>
<head>
<title>Работа с подтверждением</title>
</head>
<script>
confirm("Это мое подтверждение");
</script>
<body>
</body>
</html>
После прочтения данной главы вы научитесь использовать этот метод, чтобы сценарий по-разному реагировал на нажатие кнопок OK и Cancel.
11.2. Переменные и типы данных
Во время интерпретации сценария браузер разбивает код на отдельные слова, фразы или символы, которые умеет распознавать. Эти элементы называются лексемами. В языке JavaScript лексемы делятся на четыре типа: идентификаторы, ключевые слова, литералы и операции.
Идентификаторы
Идентификаторами называются имена, которые обозначают переменные, функции и объекты. Некоторые имена являются ключевыми или зарезервированными и не могут использоваться в качестве идентификатора, так как имеют особый смысл. О них будет рассказано далее.
Идентификаторы образуются с помощью комбинации различных символов, однако при этом накладываются некоторые ограничения.
• Все идентификаторы должны начинаться с буквы.
• После первой буквы остальными символами могут быть буквы и цифры.
• Буквами считаются заглавные и строчные буквы латинского алфавита: от A до Z и от a до z.
• Символ подчеркивания (_) выступает в качестве буквы и часто используется вместо пробела, который нельзя применять в идентификаторах.
• Символ доллара ($) выступает в качестве буквы и обычно используется при автоматической генерации кода.
• Можно использовать в качестве букв символы Unicode, однако старые версии браузеров не умеют работать с Unicode.
• Цифрами считаются символы от 0 до 9.
Совет
Не следует использовать в одном сценарии идентификаторы, отличающиеся только символами верхнего и нижнего регистра, например flagld и FlagID, так как это будут различные идентификаторы, которые могут вызвать трудноуловимые ошибки.
В табл. 11.1 приведены примеры допустимых и недопустимых идентификаторов.
Таблица 11.1. Примеры идентификаторов JavaScriptОбратите внимание, что идентификатор new хотя и содержит разрешенные символы, но относится к числу ключевых слов, поэтому не может выступать в качестве пользовательского идентификатора.
Ключевые и зарезервированные слова
К ключевым словам относятся предопределенные идентификаторы, которые образуют ядро языка JavaScript. Эти слова имеют особый смысл и выполняют определенные функции. Ключевые слова не могут использоваться для пользовательских идентификаторов. В табл. 11.2 представлен список ключевых слов JavaScript.
Таблица 11.2. Ключевые слова JavaScriptЗарезервированные слова не рекомендуется использовать в качестве пользовательских идентификаторов, так как в последующем планируется использовать их в качестве ключевых слов. Список зарезервированных слов приведен в табл. 11.3.
Таблица 11.3. Зарезервированные слова JavaScriptСовет
Конечно, вы можете использовать зарезервированные слова для своих идентификаторов, но это не гарантирует работоспособности ваших сценариев в будущем, когда зарезервированные слова могут перейти в состав ключевых.
Литералы
Литералы – это числа или строки, которые применяются для представления значений в JavaScript. Поскольку информация может быть разнообразной, то значения могут быть различных видов. Простейшие типы данных в JavaScript называют основными типами данных: числа, строки и логические значения.
ЧислаВ языке JavaScript различают два типа чисел: целые числа и числа с плавающей точкой.
Целочисленные величины могут быть положительными, например 1, 2, 3, и отрицательными, например -1, -2, -3. К целочисленным величинам также относится нуль – 0. Кроме того, целочисленные величины могут быть выражены в десятичной, восьмеричной или шестнадцатеричной системах счисления.
Числа в десятичном формате могут включать любую последовательность цифр от 0 до 9, которая не начинается с нуля.
Числа в восьмеричном формате могут включать любую последовательность цифр от 0 до 7, которая обязательно начинается с нуля.
Числа в шестнадцатеричном формате могут включать любую последовательность цифр от 0 до 9 и буквы от a до f, которая обязательно начинается с 0x.
В табл. 11.4 рассмотрены примеры представления целых чисел в различных форматах.
Таблица 11.4. Примеры целых чиселСовет
Будьте внимательны с использованием восьмеричного формата, так как обычно браузеры интерпретируют числа как десятичные, даже если они начинаются с нуля, если в их составе есть цифры 8 или 9. Например, число 076 – это 62, а 078 – это 78.
Числа с плавающей точкой определяют десятичные числа с дробной частью. Эти числа могут быть выражены в обычном или экспоненциальном виде. В последнем случае для представления порядка используется символ e или E. И десятичная мантисса, и порядок могут быть положительными или отрицательными. Ниже показаны примеры чисел с плавающей точкой:
1,4142135623730950488016887242097
–35.0
4567.0002
3.4e100
–5.456e–3
0.007
Внимание!
Число, начинающееся с нескольких нулей и содержащее десятичную точку, например 000.45, расценивается некоторыми браузерами как ошибка.
Примечание
Числа с плавающей точкой могут быть очень большими и очень маленькими: от 10-323 до 10308.
Логические величиныВ языке JavaScript есть поддержка логических типов данных, которые могут принимать лишь два значения: true (истина) и false (ложь). Логические (булевые) величины необходимы для работы с условиями, с которыми вы познакомитесь дальше в этой главе.
Внимание!
Ключевые слова true и false обязательно должны вводиться буквами нижнего регистра.
СтрокиНаверное, наиболее часто используемым типом данных в JavaScript является строка. Строка – это набор символов, возможно пустой, заключенный в одинарные или двойные кавычки. Использование двух типов кавычек введено потому, что строка может содержать и кавычки какого-либо вида. Далее представлены примеры строковых литералов:
«Строка текста»
"Россия!"
"4567"
""
'Операционные системы'
'Льюис Кэрролл "Алиса в стране чудес"'
Специальные символыИногда может возникнуть необходимость дать компьютеру команду на использование специальных символов, например табуляции или перевода строки. Чтобы ввести в строку любой Unicode-символ, нужно указать его код после \u в виде \uXXXX. В табл. 11.5 представлены наиболее часто используемые управляющие символы.
Таблица 11.5. Управляющие символыЧасто управляющие символы используются для выравнивания данных (листинг 11.4).
Листинг 11.4. Выравнивание с помощью управляющих символов<html>
<head>
<title> Выравнивание с помощью управляющих символов </title>
</head>
<script>
alert("Имя:\t\tВася\nФамилия:\t\tПетров\nКомпания:\tВася&K");
</script>
<body>
</body>
</html>
Поскольку окно, создаваемое методом alert(), зависит от браузера, то и выравнивание в различных браузерах происходит по-разному. На рис. 11.6 показан результат выполнения вышеприведенного кода, адаптированного к браузеру Internet Explorer.
Рис. 11.6. Выравнивание с помощью управляющих символов
Специальные типы данныхПомимо чисел, строк и логических величин, существует еще два типа данных: функции и объекты. Функции могут быть встроенными, например alert(), а могут быть созданы разработчиком. Кроме того, функции могут принадлежать объекту, тогда они называются методами. Объекты также могут быть встроенными, например document, а могут быть созданы программистом. Считается, что значение null является объектом.