KnigaRead.com/

Игорь Квинт - HTML, XHTML и CSS на 100%

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Игорь Квинт, "HTML, XHTML и CSS на 100%" бесплатно, без регистрации.
Перейти на страницу:

Функции могут быть рекурсивными, то есть прямо или косвенно вызывать сами себя. Если в теле функции явно используется вызов этой же функции, то имеет место прямая рекурсия. Если же функция содержит обращение к другой функции, содержащей прямой или косвенный вызов первой функции, то данная функция является косвенно рекурсивной. Классический пример – функция для вычисления факториала неотрицательного целого числа (листинг 11.22).

Листинг 11.22. Пример рекурсивной функции

<html>

<head>

<title>Пример рекурсивной функции </title>

<script>

function fact(n)

{

if (n<0) return(null); //Проверка на отрицательные числа

if (n==0) return (1); //Проверка на 0

return (n*fact(–n));//Рекурсивный вызов

}

</script>

</head>

<body>

<script>

var x=prompt("Введите число","5");

x=+x;

//Вызываем функцию

alert (x+"!="+fact(x));

</script>

</body>

</html>

Для отрицательного числа факториала не существует. В этом случае возвращается null. Для нулевого значения функция возвращает 1, так как 0!=1. В противном случае вызывается та же функция с декрементом параметра и результат умножается на текущее значение параметра. Вызов функции прерывается при вызове fact (0) (рис. 11.16).

Рис. 11.16. Пример рекурсивной функции

Знакомство с событиями

Очень часто язык JavaScript применяется для реагирования на события, которые могут быть вызваны пользователем или браузером. К событиям относятся открытие новой страницы, перемещение указателя мыши, щелчок кнопкой мыши и т. д. Каждое событие имеет соответствующий обработчик, который автоматически реагирует на возникшее событие.

Так, событие onLoad происходит после загрузки какого-либо элемента, например веб-страницы. Использование обработчика этого события позволяет выполнять JavaScript-код сразу после полной загрузки документа.

Одним из часто используемых событий является щелчок кнопкой мыши на объекте. При его возникновении обработчик события onClick объекта выполняет код JavaScript (листинг 11.23).

Листинг 11.23. Пример обработчиков событий

<html>

<head>

<title>Пример обработчиков событий</title>

<script>

function mes()

{

alert ("Замечательная ссылка");

}

</script>

</head>

<body>

<h2>Пример обработчиков событий</h2>

<a href=http://www.myserver.ru/page1.html onClick="mes()">Ссылка 1</a>

<br>

<a href=http://www.myserver.ru/page2.html

onClick="alert('Еще одна ссылка')">Ссылка 1

</a>

</body>

</html>

Из данного кода видно, что обработчик события может быть вызовом функции. Однако может и непосредственно указываться JavaScript-код. В данном случае оба обработчика вызывают метод alert() (рис. 11.17).

Рис. 11.17. Пример обработчиков событий

11.6. Встроенные объекты JavaScript

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

• Global – набор высокоуровневых свойств и методов, у которых нет родительского объекта.

• String – позволяет форматировать и изменять текстовые строки.

• Number – дает возможность обрабатывать числа.

• Boolean – позволяет создавать логические величины.

• Array – дает возможность создавать и управлять массивами.

• Function – позволяет создать функцию.

• Date – дает возможность работать с временем и датой.

• Math – предоставляет некоторые математические функции и константы.

• RegExp – позволяет выполнять функции регулярных выражений для заданных строк.

• Object – является прототипом для всех объектов.

Объект Global

Этот объект содержит несколько методов и свойств, которые не принадлежат ни одному объекту (табл. 11.12 и 11.13). Для удобства их объединили в объект Global.

Таблица 11.12. Свойства объекта GlobalТаблица 11.13. Методы объекта Global

Для доступа к методам и функциям этого объекта родительский объект не указывается:

flag=isFinite(x/y)

Объект String

Объект String предоставляет средства для форматирования и выделения части строк. Для этой цели он содержит обширный перечень методов (табл. 11.14 и 11.15).

Таблица 11.14. Свойства объекта StringТаблица 11.15. Методы объекта String

Рассмотрим использование методов объекта String:

MyText="Я люблю HTML";

MyText=MyText.substring(0,8)+"JavaScript";

В результате строка MyText примет значение «Я люблю JavaScript».

Объект Number

Объект Number обычно применяется для доступа к некоторым постоянным значениям, например к отрицательной бесконечности. Свойства и методы этого объекта указаны в табл. 11.16 и 11.17.

Таблица 11.16. Свойства объекта NumberТаблица 11.17. Методы объекта Number

Объект Boolean

Объект Boolean обычно используется для преобразования объекта в логическое значение. Этот объект имеет ограниченное количество методов и свойств (табл. 11.18).

Таблица 11.18. Методы и свойства объекта Boolean

Объект Array

С массивами вы уже познакомились в данной главе, однако массивы – это объекты, которые имеют свои свойства и методы, облегчающие работу программисту (табл. 11.19 и 11.20).

Таблица 11.19. Свойства объекта ArrayТаблица 11.20. Методы объекта Array

Объект Function

С помощью объекта Function можно манипулировать функцией как объектом. Этот объект содержит ряд специфичных методов и свойств (табл. 11.21 и 11.22).

Таблица 11.21. Свойства объекта FunctionТаблица 11.22. Методы объекта Function

Синтаксис определения объекта Function выглядит следующим образом:

ИмяОбъектаФункции = new Function ([аргумент1, аргумент2,.. аргументN],

телоФункции);

Например,

sumFunc = new Function ("a","b","return(a+b)");

alert(sumFunc(5,4));

Объект Date

Объект Date предоставляет значительное количество свойств и методов, связанных с датами и временем (табл. 11.23 и 11.24). В качестве базовой даты в JavaScript принято 1 января 1970 года. Язык JavaScript имеет доступ только к времени и дате на клиентской машине.

Таблица 11.23. Свойства объекта DateТаблица 11.24. Методы объекта Date

Конструктор этого объекта принимает значение даты в числовом или строковом формате:

ИмяОбъектаДаты = new Date();

ИмяОбъектаДаты = new Date(миллисекунды);

ИмяОбъектаДаты = new Date("месяц дд, гггг чч:мм:сс");

ИмяОбъектаДаты = new Date(год, месяц, день [, час, минуты, секунды, миллисекунды]);

где значение определяется следующим образом:

• миллисекунды – целое число, определяющее количество миллисекунд, прошедших с 0 часов 0 минут 0 секунд 1 января 1970 года по Гринвичу;

• месяц, дд, гггг, чч, мм, сс – месяц, день, год, час, минуты и секунды соответственно;

• год, месяц, день, час, минуты, секунды, миллисекунды – целые числа, определяющие соответствующие величины.

Если параметры не указаны, то объект инициализируется текущей датой и временем.

Например, чтобы узнать текущий день недели, можно воспользоваться следующим кодом:

MyDate=new Date();

alert(MyDate.getDay());

Этот код отобразит число от 0 до 6, соответствующее дню недели. Например, 0 соответствует воскресенью.

Объект Math

Для математических вычислений JavaScript поддерживает объект Math, который содержит ряд математических констант и функций (табл. 11.25 и 11.26).

Таблица 11.25. Свойства объекта MathТаблица 11.26. Методы объекта Math

Объект RegExp

Регулярные выражения – это шаблоны для поиска определенных комбинаций символов в строках. В данной книге мы не будем рассматривать регулярные выражения, но список методов и свойств объекта RegExp, позволяющего создавать регулярные выражения, можно найти в табл. 11.27 и 11.28.

Таблица 11.27. Свойства объекта RegExpТаблица 11.28. Методы объекта RegExp

Объект Object

Все объекты в JavaScript – и встроенные, и пользовательские – наследуются от объекта Object, то есть его методы и свойства (табл. 11.29 и 11.30) присутствуют в каждом объекте, но, как правило, их переопределяют.

Таблица 11.29. Свойства объекта ObjectТаблица 11.30. Методы объекта Object

Резюме

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*