Зараз обговорюють

"Тобто є ряд завдань, які взагалі без рекурсії не наважуються."  - це як розуміти? Перефразуй, будь ласка. 

виправив, йшлося про те що деякі завдання можна вирішити лише при використанні рекурсії

Спасибі дуже корисна стаття

А ще щось планується подібного найближчим часом?


Дякую за підтримку, радий що Вам сподобалось!

Так маю вже майже дороблений проект по управлінні Audio файлом, на заміну стандартним клавішам управління HTML5, але ще не встиг відтестувати програвання файлів з інтернету, поки лише локально працює

Надіюсь найближчим часом дороблю й закину

Рахунки

webmoneyeur - E385818210641
usd - Z304643423050
uah - U354026817492
rub - R301704373231easypay80002677bitcoin1F5HRGroUtEQW9HBNbeew8iKh5KQ8vJxzw

Зворотній зв'язок

Для покращення роботи сайту надсилайте свої зауваження:
mailЗауваження
mailПропозиція

Статистика

UkrNET - поисково-информационный ресурс

JavaScript : Створення функцій. Локальні і глобальні змінні, яка їх відмінність

Створення функції

Якщо у нас є певна стала часто повторювана дія, краще зробити її функцією яку ми можемо викликати кожного разу із різних частин сайту, а при певних змінах достатньо буде змінити сам вміст однієї функції, а не переглядати весь код для пошуку коду в якому треба змінити розрахунки тощо.

Оголошення функції

function helloWorld(){
	alert('Hello, World!');
}

function - оголошує нашу функцію

helloWorld () - назва створюваної функції. В дужках вказуються аргументи, які буде приймати функція, за потреби

Примітка: ім'я функції так як і змінною повинно передавати її зміст, як наприклад наша функція calcTax(наведена нижче) розраховує податок (ПДВ)

Тіло функції загортаємо в фігурні дужки "{}", задають початок та кінець функції

Приклад

Розрахуємо суму ПДВ від введених користувачем даних:

<script type="text/javascript">
	function calcTax(sum){
		alert('Розмір ПДВ від суми ' + sum + ' = ' + sum * 0.2);
	}
</script>
<input type="button" value="DEMO" onclick="calcTax(prompt('Введіть суму для обчислення ПДВ:', ''))">


Аргументи функції

Створюючи функцію їй можна задати перелік аргументів, через кому, який вона може приймати:

function test(x, y, z){
	[щось тут робить]
}

В JS є певні особливості при передачі аргументів для функції:

- якщо Ви передаєте на функцію більше аргументів ніж вони може прийняти, то всі передані дані що виходять поза діапазон не будуть оброблятись

- якщо ви передаєте функції менше аргументів ніж вона від Вас вимагає, то всі не вказані аргументи приймуть значення Undefined

Мінуси даного підходу

Якщо Ви пропустите один із аргументів який потрібен для розрахунку, Вас про це не повідомлять (як в інших мовах програмування)

Плюси даного підходу

Можна створювати функції з необов'язковими аргументами і передавати їх лише за потреби


Присвоєння функції

Присвоєння функції - звичайне присвоєння значення для змінної, де значення, яке отримує змінна, є функцією.

Перебудуємо трошки нашу функцію calcTax і отримаємо:

<script type="text/javascript">
	var payTax = function calcTax(sum){
		return 'ПДВ до оплати: ' + sum * 0.2;
	};
</script>
<input type="button" value="DEMO" onclick="alert(payTax(prompt('Введіть суму для обчислення ПДВ:', '')))">

prompt - запитує в користувача ввід значення

payTax - приймає введене значення і передає його на присвоєну функцію calcTax

calcTax - в свою чергу розраховує суму ПДВ і за допомогою оператора return повертає стрічку результат яку і виводить alert

Примітка: якщо потрібно здійснювати додаткові операції із даними то їх потрібно проводити до оператора return так як при його виконанні функція буде завершена!

Ось для прикладу alert в середині функції ніколи не буде виконаний:

<script type="text/javascript">
	var payTax = function calcTax(sum){
		return 'ПДВ до оплати: ' + sum * 0.2;
		alert("Мене все рівно ніхто не прочитає!");
	};
</script>
<input type="button" value="DEMO" onclick="alert(payTax(prompt('Введіть суму для обчислення ПДВ:', '')))">


Локальні і глобальні змінні

Локальна змінна - змінна яка оголошується в тілі функції, чи передана їй аргументом, і може використовуватись лише в межах даної функції

function test1(){
	var x = 2;
	alert('x1 = ' + x);
};
alert('x2 = ' + x);

x2 - не буде виведено так як він пробує відобразити не існуючий x, натомість x1 буде добре виводитись на екран так як змінна оголошена в тій же процедурі

Якщо винести оголошення x за межі функції:

var x = 2;
function test1(){
	alert('x1 = ' + x);
};
alert('x2 = ' + x);

то будуть виводитись обидва повідомлення

Приклад:

Що буде виведено при виконанні даної функції:

function test(){
	var y = 10;
	var x = function(){
		var y = 15;
		return y;
	};
	alert('x = ' + x());
	alert('y = ' + y);
};

x=15, а y=10 так як для функції x у нас було оголошено власний y

Приклад:

Що буде виведено при виконанні даної функції:

function test(){
	var y = 10;
	var x = function(){
		y = 15;
		return y;
	};
	alert('x = ' + x());
	alert('y = ' + y);
};

x=15, а y=15 так як при виконанні функції x ми лише змінили значення y створено рівнем вище


view607like0dislike0 avatard_l4w clock 2017-02-23 02:39

Коментарі:



Для даної статті відсутні коментарі

Про нас

"Programmers World" розроблено з метою полегшення в освоєнні навичок програмування, та поширення матеріалів з сфери ІТ Українською мовою.

Кожен бажаючий може безкоштовно користуватися ресурсами сайту, щоб:

- Вивчати теоретичні аспекти мов програмування

- Переглядати практичне застосування теорії при виконанні різних міні проектів з відкритим кодом

- Розміщати свої завдання на форумі для допомоги в їх реалізації, або готового коду який може бути корисний іншим користувачам

- Спілкуватись з іншими користувачами та обмінюватись досвідом

Сайт функціонує на безопланій основі та ентузіазмі розробника, якщо Ви бажаєте долучитись до розвитку даного проекту то можете пожертвувати кошти на рахунки розміщені в блоці "Допомога сайту".

Сайт

Зареєстровані користувачі можуть скористатися системою діалогів, в профілі користувача, для отримання потрібної інформації. Написати!

Також Ви можете використати форми відправки Зауважень та Пропозицій.


Електронна пошта

Ви можете звертатись на нашу поштову скриньку site.programmersworld@gmail.com

www.000webhost.com