Відмінності між версіями «Підпрограми в JavaScript»
Рядок 36: | Рядок 36: | ||
<code> | <code> | ||
<font style="font-size:10pt"> | <font style="font-size:10pt"> | ||
− | <span style="color:green;">// функція sum визначена нижче її виклику.</span | + | <span style="color:green;">// функція sum визначена нижче її виклику.</span> |
− | <span style="color:blue;">var</span> a = sum(1,1);<br/> | + | <span style="color:blue;">var</span> a = sum(1,1);<br/> |
− | + | <span style="color:blue;">function</span> sum(x,y) | |
− | <span style="color:blue;">function</span> sum(x,y) | + | { |
− | { | + | <span style="color:blue;">return</span> x+y; |
− | <span style="color:blue;">return</span> x+y; | + | } |
− | } | + | |
</font> | </font> | ||
Рядок 50: | Рядок 49: | ||
<code> | <code> | ||
<font style="font-size:10pt"> | <font style="font-size:10pt"> | ||
− | <span style="color:green;">//При виконанні даного коду буде отримано помилку так як під час виклику | + | <span style="color:green;">//При виконанні даного коду буде отримано помилку так як під час виклику |
− | //функція sum ще не оголошена | + | //функція sum ще не оголошена</span> |
− | + | <span style="color:blue;">var</span> a = sum(1,1);<br/> | |
− | <span style="color:blue;">var</span> a = sum(1,1);<br/> | + | <span style="color:blue;">var</span> sum = <span style="color:blue;">function</span>(x,y) |
− | + | { | |
− | <span style="color:blue;">var</span> sum = <span style="color:blue;">function</span>(x,y) | + | <span style="color:blue;">return</span> x+y; |
− | { | + | } |
− | <span style="color:blue;">return</span> x+y; | + | |
− | } | + | |
</font> | </font> | ||
</code> | </code> | ||
Рядок 68: | Рядок 65: | ||
<code> | <code> | ||
<font style="font-size:10pt"> | <font style="font-size:10pt"> | ||
− | <span style="color:green;">// Визначення змінних в глобальній області видимості</span | + | <span style="color:green;">// Визначення змінних в глобальній області видимості</span> |
− | <span style="color:blue;">var</span> num1 = 20, | + | <span style="color:blue;">var</span> num1 = 20, |
− | num2 = 3, | + | num2 = 3, |
− | name = "Test"; | + | name = "Test"; |
− | + | <span style="color:green;">// Ця функція визначена в глобальній області видимості</span> | |
− | <span style="color:green;">// Ця функція визначена в глобальній області видимості</span | + | <span style="color:blue;">function</span> multiply() { |
− | <span style="color:blue;">function</span> multiply() { | + | <span style="color:blue;">return</span> num1 * num2; |
− | <span style="color:blue;">return</span> num1 * num2;<br/> | + | }<br/> |
− | + | multiply(); <span style="color:green;">// функція поверне 60</span><br/> | |
− | + | <span style="color:blue;">function</span> getScore () { | |
− | multiply(); <span style="color:green;">// функція поверне 60</span><br/> | + | <span style="color:blue;">var</span> num1 = 2, |
− | + | num2 = 3; | |
− | <span style="color:blue;">function</span> getScore () { | + | <span style="color:green;">//Приклад вкладеної функції</span> |
− | <span style="color:blue;">var</span> num1 = 2, | + | <span style="color:blue;">function</span> add() { |
− | num2 = 3; | + | <span style="color:blue;">return</span> name + " scored " + (num1 + num2); |
− | <span style="color:green;">//Приклад вкладеної функції</span | + | } |
− | <span style="color:blue;">function</span> add() { | + | <span style="color:blue;">return</span> add(); |
− | <span style="color:blue;">return</span> name + " scored " + (num1 + num2); | + | }<br/> |
− | } | + | getScore(); <span style="color:green;">// функція поверне "Test scored 5"</span> |
− | <span style="color:blue;">return</span> add(); | + | |
− | }<br/> | + | |
− | + | ||
− | getScore(); <span style="color:green;">// функція поверне "Test scored 5"</span | + | |
</font> | </font> | ||
</code> | </code> | ||
+ | <h1>Параметри функції</h1> | ||
+ | Функції в JavaScript можна запускати з будь-яким числом параметрів. | ||
+ | Якщо в функцію передано менше параметрів, ніж є у визначенні, то відсутні параметри отримують значення undefined. |
Версія за 14:38, 19 травня 2013
Зміст
Підпрограми
При створенні програми розумно виділити в ній логічно незалежні частини (підпрограми). Кожну частину при необхідності можна розбити на окремі підпрограми і т. д. Розбиття програми на підпрограми полегшує процес відлагодження, оскільки дозволяє відлагоджувати кожну підпрограму окремо. Один раз створену і відлагоджену підпрограму можна використовувати довільну кількість разів. У багатьох мовах програмування поняття підпрограми реалізується за допомогою конструкцій процедур, функцій, модулів і т.д. Основним елементом для реалізації підпрограм в мові JavaScript є функція.
Створення та використання функцій
В мові програмування JavaScript функції поділяються на іменовані функції та анонімні. Основна їх відмінність в тому, що доступ до іменованої функції можна отримати скрізь, а до анонімної - тільки після її оголошення.
Синтаксис оголошення іменованої функції
function ім'я(параметри)
{
код
}
Синтаксис оголошення анонімної функції
var ім'я = function(параметри)
{
код
}
або
var ім'я = new Function(параметри, 'код')
Причому синтаксис new Function використовується досить рідко, в основному для отримання функції з тексту, наприклад, динамічно завантаженого з сервера в процесі виконання скриптів.
Приклад оголошення та використання іменованої функції
// функція sum визначена нижче її виклику. var a = sum(1,1);
function sum(x,y) { return x+y; }
Приклад оголошення та використання анонімної функції
//При виконанні даного коду буде отримано помилку так як під час виклику //функція sum ще не оголошена var a = sum(1,1);
var sum = function(x,y) { return x+y; }
Область видимості функції
Змінні визначені всередині функції невидимі поза цією функцією, так як змінні визначаються в області видимості всередині функції. Будь-яка функція має доступ до всіх змінних та інших функцій які визначені у тій же області видимості де і сама функція була визначена. Іншими словами, функція визначена в глобальній області видимості має доступ до всіх змінних визначених у глобальній області видимості. Функція визначена всередині іншої функції має доступ до всіх змінних визначених у батьківській функції і будь-яких інших змінних до яких має доступ батьківська функція.
Приклад
// Визначення змінних в глобальній області видимості var num1 = 20, num2 = 3, name = "Test"; // Ця функція визначена в глобальній області видимості function multiply() { return num1 * num2; }
multiply(); // функція поверне 60
function getScore () { var num1 = 2, num2 = 3; //Приклад вкладеної функції function add() { return name + " scored " + (num1 + num2); } return add(); }
getScore(); // функція поверне "Test scored 5"
Параметри функції
Функції в JavaScript можна запускати з будь-яким числом параметрів. Якщо в функцію передано менше параметрів, ніж є у визначенні, то відсутні параметри отримують значення undefined.