Вы можете передавать функциям неограниченное количество переменных. Обратите внимание: все манипуляции над переменными внутри функций на самом деле производятся не над самими переменными а над их копией, поэтому содержимое самих переменных в результате выполнения функций не изменяется.
Пример
/* Зададим функцию, которая прибавляет к переданной переменной 10 и выводит результат на страницу */
function plus(a){
a=a+10;
document.write('Вывод функции: ' + a+'<br />');
}
var a=25;
document.write('Значение переменной до вызова функции: '+a+'<br />');
// Вызовем функцию передав ей в качестве аргумента переменную a
plus(a);
document.write('Значение переменной после вызова функции: '+a+'<br />');
Чтобы обращаться к глобальной переменной из функции, а не ее копии используйте window.имя_переменной.
Пример
function plus(a){
window.a=a+10;
}
var a=25;
document.write('Значение переменной до вызова функции: '+a+'<br />');
plus(a);
document.write('Значение переменной после вызова функции: '+a+'<br />');
Команда return
С помощью команды return можно возвращать из функций значения.
Пример
<html>
<head>
<script type='text/javascript'>
//Функция sum возвращает сумму переданных в нее переменных
function sum(v1,v2){
return v1+v2;
}
</script>
</head>
<body>
<script type='text/javascript'>
document.write('5+6=' + sum(5,6) + '<br />');
document.write('10+4=' + sum(10,4) + '<br />');
</script>
</body>
</html>
Встроенные функции
Помимо определяемых пользователем функций в JavaScript существуют еще и встроенные функции. К примеру встроенная функция isFinite позволяет проверить является ли переданное значение допустимым числом.
Пример
document.write(isFinite(40)+'<br />');
document.write(isFinite(-590)+'<br />');
document.write(isFinite(90.33)+'<br />');
document.write(isFinite(NaN)+'<br />');
document.write(isFinite('Это строка')+'<br />');
Обратите внимание: полный список встроенных функций JavaScript Вы можете найти в Справочнике.
Локальные и глобальные переменные
Переменные которые объявляются в теле функции называются локальными. К таким переменным можно обращаться только внутри функций, в которых они были определены. После завершения выполнения кода функции такие переменные уничтожаются. Это значит, что в разных функциях могут быть определены переменные с одинаковым именем.
Переменные, которые создаются вне кода функций называются глобальными переменными к таким переменным можно обращаться из любого места кода.
Если переменная объявлена без префикса var внутри функции она тоже становится глобальной. Глобальные переменные уничтожаются только после закрытия страницы.
Пример
<html>
<head>
<script type='text/javascript'>
//Объявим глобальные переменные var1 и var2
var var1="var1 существует";
var var2;
function func1() {
//Присвоим var2 значение внутри функции func1
var var2="var2 существует";
}
//Из другой функции выведем содержимое переменной var1 и var2 на страницу
function func2() {
//Выводим содержимое переменной var1
document.write(var1 + '<br />');
//Выводим содержимое переменной var2
document.write(var2);
}
</script>
</head>
<!-- Вызовем функцию func2() после полной загрузки документа -->
<body onload='func2()'>
</body>
</html>
Обратите внимание: при выводе на экран переменная var2 будет иметь пустое значение, так как func1 оперирует с локальной "версией" переменной var2.
Использование анонимных функций
Функции, которые не содержат имени при объявлении называются анонимными. Анонимные функции в основном объявляют не для последующего их вызова из кода как обычные функции, а для передачи другим функциям в качестве параметра.
Все функции JavaScript рекомендуется помещать в контейнер <HEAD>...</HEAD>. Тем самым вы обеспечите их гарантированную доступность при обработке HTML-документа.