Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Веб программирование.Начало.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.96 Mб
Скачать

5.3.4. Глобальные и локальные переменные

Существует два вида переменных: глобальные, которые объявлены перед функцией и видны во всем документе во время выполнения скрипта и локальные, которые объявляются при помощи оператора var и видны только внутри функций. Если мы используем необъявленную внутри функции переменную, то это будет либо глобальная переменная, либо свойство объекта window. Если объявлена локальная переменная, то доступ к глобальной переменной с тем же именем закрывается – все действия переменных будут происходить с локальной переменной. Аргументы функции автоматически становятся локальными переменными. 

Если перед именем переменной ключевое слово var не ставится, то переменная также считается глобальной и принадлежат объекту window как свойство.

<!-- пример pr14 -->

<html>

<body>

<script type="text/javascript">

var x="global2";

var z=0;

function myFunc() {

var x = "local";//переопределение глобал_переменной

y = "global1";

alert(x); //local

alert(z); //0

}

myFunc();

alert(window.y); //вернет global1

alert(x); //вернет слово global2

alert(z); //0

</script>

</body></html>

Функции в JavaScript считаются объектами(call objekt). Ар­гументы и локальные переменные являются свойствами такого объекта. Всегда можно использовать объект arguments и при помощи него добраться до параметров. Могут также использоваться функциональные литералы вида: var f=function(x){return x*x}

5.3.5. Модель событий

Модель событий (Event Model) – это реализация способности JavaScript реагировать на изменение состояния какого-либо объекта или всего документа в браузере. При возникновении события, например, при нажатии на ссылку или при отправке заполненной формы вызывается обработчик события - код JavaScript или функция. Ниже приведены основные события:

Onfocus/ onblur – элемент получает/теряет фокус; onchange –элемент формы теряет фокус, а его значение изменилось; onclick/ ondblclick – происходит при нажатии мышкой на любой визуальный элемент; onkeydown/onkeyup – пользователь нажимает/отпускает клавишу; onkeypress – пользователь нажимает и отпускает клавишу на клавиатуре; onload/onunload –документ загружен/покидается; onmousedown/ onmouseup – пользователь нажимает/отпускает клавишу мыши; onmousemove – пользователь двигает курсором мыши над элементом; onmouseover/onmouseout – указатель мыши попадает/покидает область элемента; onreset –значения элементов формы сбрасываются; onselect –пользователь выделяет текст в элементе формы; onsubmit – происходит, когда пользователь отсылает форму;

В первых версиях браузеров события определялись как атрибуты в дескрипторах HTML. При этом после имени атрибута - события записывается знак равенства, после него указывается значение. Значением атрибута является обработчик события - функция или группа команд JavaScript. В следующем примере событие onclick вызывается при нажатии кнопки "Browser", чтобы получить имя и версию браузера через свойства navigator.appName и navigator.appVersion. Рассматриваются и другие события

<!-- пример pr15: получение типа и версии браузера и другие события-->

<html> <head>

<title>Test of Browser name</title>

</head>

<body onload="alert('загрузка body')">

<h1 >Проверка типа браузера</h1> <hr>

<p onmouseover="alert('Тест')">Тест</p>

<a href="pr3.htm" onclick="alert('click')"> click me now</a>

<form name=fr>

<input type=button name=browser value=Browser onClick= "alert(window.navigator.appName+navigator.appVersion)">

</form>

</body> </html>

После onclick можно написать вызов функции - обработчика события.

<html>

<head>

<title> pr16-Функция будет исполняться при событии</title>

<script type="text/javascript">

function myalert(){alert('Тест')}

</script>

<body>

<p id="test" onclick="myalert();">Тест</p>

</body>

</html>

Cобытия могут рассматриваться не только как атрибуты, но и как свойства объектов JavaScript. Вот пример установки обработчика события click на элемент с id="button":

<html> <head>

<title> prr-Функция будет иcполнятся при событии</title>

<script type="text/javascript">

function doMy() {

confirm('OK!')

}

</script>

</head>

<body>

<input type="button" id='button' value="Нажми" >

<script>

document.getElementById('button').onclick = function() {

alert('Click')

}

</script>

</body> </html>

Здесь onclick свойство, значением которого является анонимная функция. Анонимную функцию можно и не создавать, а использовать обычную. В следующем примере свойству объекта присваивается функция-обработчик doMy без скобок.

function doMy() {

alert('OK!') }

document.getElementById('button').onclick = doMy