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

Оператор with

Оператор with присоединяет имя объекта к имени свойства объекта. С помощью оператора with можно обращаться со свойствам объекта в сокращенном виде:

with (object) {

//свойства

}

Оператор switch

switch (переменная) {

case условие1: выражение; break;

case условие2: выражение; break;

// ...

case условие N: выражение; break;

default: выражение

}

Выполняется тот вариант, для которого значение "переменной" совпадает со значением "условие". Оператор break прерывает выполнение switch (). Ветка default выполняется только тогда, если ни одно из условий не выполняется, и может отсутствовать.

5.3. Функции

5.3.1. Стандартные функции.

В JavaScript используются стандартные функции:

Eval() : позволяет выполнить строку, содержащую выражение, как javascript-код. Это полезно когда код формируется в ходе выполнения скрипта. Пример реализации простейшего калькулятора приведен ниже:

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

<html>

<body>

<input type="text" id="calc" />//вводится текст выражения

<input type="button" value="Calculate!"

onclick="alert(eval(document.getElementById('calc').value))" />

//вычисляется выражение

</body> </html>

Функции parseInt(), parseFloat() преобразуют строку в число. Функции encodeURI(), decodeURI(), encodeURIComponent(),decodeURIComponent() предназначены для работы с URI (Uniform Resource Identifier). Функция isNaN() - проверяет нечисловое значение NaN, isFinite() - проверяет на бесконечность.

5.3.2. Функции пользователя

В языке JavaScript определение функций имеет синтаксис:

function name(список_параметров) {

//тело функции-список выражений;

return (значение)

}

Параметры в списке разделяются запятыми и могут отсутствовать. Оператор return используется для выхода из функции и возврата значе­ния и может отсутствовать. Например:

function name() {

alert(“Hello World!”)

}

hello(); //выведет фразу «Hello World!»

Вызов функции производится следующим образом: name(arglist);. Другие способы вызова функций через события будут рассмотрены ниже.

Если в описании функции определено несколько параметров, а при вызове эти параметры функции не передаются, то неопределенным параметрам присваивается значение undefined. Пример:

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

<html> <body>

<script type="text/javascript">

function sum(arg1, arg2, arg3) {

var res = arg1 + arg2;

if (arg3){ res = res + arg3;}

else alert(arg3);//Выводит значение undefined

return res;

}

var x = 1; var y = 2; var z = 3;

alert(sum(x,y,z)); //выведет на экран 6

alert(sum(x,y));//выведет 3, прибавление arg3 к res //не произво­дится, так как arg3=undefined.

alert(sum(x));//Выводит значение NaN

</script>

</body> </html>

5.3.3. Передача параметров по значению и по ссылке

Базовые типы данных (числа, строки, булевы переменные) переда­ются в качестве параметров функции по значению, и не изменяются во время выполнения функции. Данные объектных типов, например массивы, передаются по ссылке (адресу) и могут изменяться в функции. Пример, иллюстрирующий данное поведение, приведен ниже:

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

<html>

<head></head>

<body>

<script type="text/javascript">

function passval(arg1) {

var arg=5; arg1=arg++;

return arg1;

}

var x = 1; var y = 2;

alert(passval(x)); //выведет в окно 5

alert(x); //выведет 1, значение x не изменится

function passRef(arr1) {

arr1[0] = "NEWfirst";

}

var y = ["first", "second"];//массив

passRef(y);

alert(y);//выведет в окно "NEWfirst", second

</script>

</body></html>

При вызове passRef(y); в функцию передается ссылка на объект y. Изменения объекта не исчезнут после завершения функции. Учитывая такую разницу в поведении типов, необходимо определять, с каким ти­пом приходится работать. Для этого используются операторы typeof и instanceof.