Пользовательские функции. Выражения с функциями

Функция созданная нами для решения своих конкретных задач, называется пользовательской функцией. Пользовательские функции задаются описанием, которое начинается ключевым словом function.

function имя_функции (параметры) {

код

}

Имя функции выбирается произвольно, это могут быть буквы и слова, кроме ключевых слов JavaScript. За именем функции обязательно стоит пара круглых скобок. Програмный код (тело) функции заключается в фигурные скобки. Они определяют группу выражений, которые относятся к коду именно этой функции. Если функция принимает параметры, то список их имен (идентификаторов) указывается в круглых скобках около имени функции. имена параметров выбираются согласно тем же требованиям, что и имена переменных. Если параметров несколько, то в списке они разделяются запятыми. Если параметры для данной функции не предусмотрены, то в круглых скобках ничего не пишут.

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

Если требуется, чтобы функция возвращала некоторое значение, то в ее теле используется оператор возврата return с указанием, что следует возвратить. В качестве возвращаемой величины может выступать любое выражение: простое значение, имя переменной или вычисляемое выражение. Оператор return может встречаться в коде функции несколько раз.

Давайте поупражняемся в математических вычислениях. Для начала определим функцию для вычисления площади прямоугольника длиной а и шириной b.

Пишем скрипт.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пользовательские функции</title>
<script language="JavaScript">

function my_sp() {
var a=5
var b=6
s=a*b
return s
}

document.write("Sпрямоугольника ="+my_sp());

</script>

</head>
<body >
</body>
</html>

В окне веб-браузера это выглядит ТАК.

А теперь поэксперементируем. Уберем из скрипта оператор возврата return s. Вы увидите: "Sпрямоугольника =undefined", т.е. функция my_sp() не возвратила значение s.

Или давайте изменим скрипт так:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пользовательские функции</title>

<script language="JavaScript">

function my_sp() {
var a=5
var b=6
s=a*b
document.write("Sпрямоугольника ="+s)
}

</script>
</head>

<body onLoad=" my_sp()">
</body>
</html>

В окне веб-браузера это выглядит ТАК.

Здесь мы воспользовались обработчиком событий onLoad. Как видите результат такой же, как и в первом примере.

А можем написать и ТАК:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пользовательские функции</title>
<script language="JavaScript">
a=5;
b=6
s=a*b
function my_sp() {

return s
}

alert("S= "+my_sp())
document.write("Sпрямоугольника ="+my_sp());
</script>

</head>

<body >
</body>
</html>

Здесь переменные вынесены за пределы тела функции и по определению являются глобальными т.е. доступными всюду, в т.ч. и внутри кода функции.

Выражения с функциями

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

Мы создали функцию my_sp(), которая возвращает значение площади прямоугольника со сторонами а и b. А если нам потребуется вычислить площадь прямоугольного треугольника с катетами а и b, то мы воспользуемся формулой, Sтреугольника = 0,5 а*b или в нашем случае

S=0.5*my_sp()

В этом примере вызов функции является операндом выражения с арифметическим оператором умножения. При этом значение выражения присваивается переменной S.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пользовательские функции</title>
<script language="JavaScript">
function my_sp() {
var a=5
var b=6
s=a*b
return s
}
S=0.5*my_sp()
alert("Sтреугольника = "+S)
document.write("Sтреугольника ="+S)
</script>

</head>

<body>
</body>
</html>

В окне веб-браузера это выглядит ТАК.




  • Другие |
назадвверхвперед
Rambler's Top100