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

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

with (object) {

//Свойства

}

Оператор switch позволяет выбрать вариант

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

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

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

// ...

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

default: выражение

}

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

Операторы continue и break могут применяться также во всех циклах. Первый служит для прерывания данной итерации и перехода к следующей итерации в цикле, второй – для выхода из цикла.

5.3. Функции

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

Библиотека JavaScript – сборник классов или функций на языке JavaScript. Часто используются библиотеки: Dojo, jQuery, Prototype,Rico, Underscore, Node.js. Примеры подключения:

<script language=JavaScript src="Node.js">

</script>

var numbers = require('numbers');

numbers.calculus.riemann(Math.sin, -2, 4, 200, 0.0001);

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

<!-- Пример pr10 -->

<html> <body>

<p>вводится текст выражения<p>

<input type="text" id="calc" />

<p>вычисляется выражение<p>

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

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

</body> </html>

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

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

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

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

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

return (значение)

}

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

function name() {

alert(“Hello World!”)

}

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

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

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

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

<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=undefined к res не производится.

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

</script>

</body> </html>

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

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

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

<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)); //Выведет в окно 6

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

function passRef(arr) {

arr[0] = "NEWfirst";

}

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

passRef(y);

alert(y);//Выведет "NEWfirst", second

</script>

</body></html>

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