ÐоÑиÑÑ ÑаÑÑо нам поÑÑÑбно виконаÑи Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ñ Ð´ÑÑ Ð² декÑлÑÐºÐ¾Ñ Ð¼ÑÑÑÑÑ Ð¿ÑогÑами.
ÐапÑиклад, нам ÑÑеба показаÑи ÑкеÑÑ Ð¿Ð¾Ð²ÑдомленнÑ, коли коÑиÑÑÑÐ²Ð°Ñ Ð²Ñ Ð¾Ð´Ð¸ÑÑ Ð°Ð±Ð¾ Ð²Ð¸Ñ Ð¾Ð´Ð¸ÑÑ Ð· ÑиÑÑеми Ñа може Ñе деÑÑ.
ФÑнкÑÑÑ â Ñе Ð³Ð¾Ð»Ð¾Ð²Ð½Ñ âбÑдÑвелÑÐ½Ñ Ð±Ð»Ð¾ÐºÐ¸â пÑогÑами. Ðони дозволÑÑÑÑ ÑобиÑи Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ñ Ð´ÑÑ Ð±Ð°Ð³Ð°Ñо ÑазÑв без повÑоÑÐµÐ½Ð½Ñ ÐºÐ¾Ð´Ñ.
Ðи вже ÑÑикалиÑÑ Ð· Ñакими вбÑдованими ÑÑнкÑÑÑми, Ñк-Ð¾Ñ alert(message), prompt(message, default) Ñа confirm(question). Ðле ми Ñеж можемо ÑÑвоÑÑваÑи ÑÐ²Ð¾Ñ ÑÑнкÑÑÑ.
ÐголоÑÐµÐ½Ð½Ñ (деклаÑаÑÑÑ) ÑÑнкÑÑй
Щоб ÑÑвоÑиÑи ÑÑнкÑÑÑ Ð½Ð°Ð¼ ÑÑеба ÑÑ Ð¾Ð³Ð¾Ð»Ð¾ÑиÑи.
Це виглÑÐ´Ð°Ñ Ð¾ÑÑ Ñак:
function showMessage() {
alert('ÐÑÑм пÑивÑÑ!');
}
СпоÑаÑÐºÑ Ð¼Ð¸ пиÑемо function â Ñе клÑÑове Ñлово (keyword), Ñке Ð´Ð°Ñ Ð·ÑозÑмÑÑи компâÑÑеÑÑ, Ñо Ð´Ð°Ð»Ñ Ð±Ñде оголоÑÐµÐ½Ð½Ñ ÑÑнкÑÑÑ. ÐоÑÑм â Ð½Ð°Ð·Ð²Ñ ÑÑнкÑÑÑ Ñа ÑпиÑок ÑÑ Ð¿Ð°ÑамеÑÑÑв в дÑжкаÑ
(ÑоздÑÐ»ÐµÐ½Ñ ÐºÐ¾Ð¼Ð¾Ñ). ЯкÑо паÑамеÑÑÑв немаÑ, ми залиÑаÑмо пÑÑÑÑ Ð´Ñжки. РнаÑеÑÑÑ, код ÑÑнкÑÑÑ, Ñкий Ñакож називаÑÑÑ ÑÑлом ÑÑнкÑÑÑ Ð¼Ñж ÑÑгÑÑними дÑжками.
function name(parameter1, parameter2, ... parameterN) {
// ...ÑÑло ÑÑнкÑÑÑ...
}
ÐаÑÑ Ð½Ð¾Ð²Ñ ÑÑнкÑÑÑ Ð¼Ð¾Ð¶Ð½Ð° викликаÑи, напиÑавÑи ÑÑ ÑмâÑ Ñ Ð´Ñжки: showMessage().
ÐапÑиклад:
function showMessage() {
alert( 'Ð¨Ð°Ð½Ð¾Ð²Ð½Ñ Ð´ÑÑзÑ!' );
}
showMessage();
showMessage();
Ðиклик showMessage() виконÑÑ ÐºÐ¾Ð´ Ñз ÑÑла ÑÑнкÑÑÑ. Ð ÑÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ, ми побаÑимо повÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð²ÑÑÑ.
Цей пÑиклад ÑÑкÑаво демонÑÑÑÑÑ Ð¾Ð´Ð½Ñ Ð· найголовнÑÑÐ¸Ñ ÑÑлей ÑÑнкÑÑÑ â ÑÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÑоÑÐµÐ½Ð½Ñ ÐºÐ¾Ð´Ñ.
ЯкÑо нам поÑÑÑбно змÑниÑи повÑдомленнÑ, доÑÑаÑнÑо змÑниÑи ÑÑло ÑÑнкÑÑÑ, Ñке виводиÑÑ Ñе повÑдомленнÑ.
ÐокалÑÐ½Ñ Ð·Ð¼ÑннÑ
ÐмÑнна, Ñка оголоÑена в ÑÑнкÑÑÑ Ð´Ð¾ÑÑÑпна лиÑе в ÑÑÐ»Ñ ÑÑÑÑ ÑÑнкÑÑÑ.
ÐапÑиклад:
function showMessage() {
let message = "ÐÑивÑÑ, Ñ JavaScript!"; // локалÑна змÑнна
alert( message );
}
showMessage(); // ÐÑивÑÑ, Ñ JavaScript!
alert( message ); // <-- Ðомилка! ÐмÑнна недоÑÑÑпна поза ÑÑнкÑÑÑÑ
ÐовнÑÑÐ½Ñ Ð·Ð¼ÑннÑ
ФÑнкÑÑÑ Ð¼Ð¾Ð¶Ðµ викоÑиÑÑовÑваÑи зовнÑÑÐ½Ñ Ð·Ð¼ÑннÑ, напÑиклад:
let userName = 'Ðван';
function showMessage() {
let message = 'ÐÑивÑÑ, ' + userName;
alert(message);
}
showMessage(); // ÐÑивÑÑ, Ðван
ФÑнкÑÑÑ Ð¼Ð°Ñ Ð¿Ð¾Ð²Ð½Ð¸Ð¹ доÑÑÑп до зовнÑÑнÑÐ¾Ñ Ð·Ð¼ÑнноÑ. Ðона Ñеж може ÑÑ Ð·Ð¼ÑнÑваÑи.
ÐапÑиклад:
let userName = 'Ðван';
function showMessage() {
userName = "Ðогдан"; // (1) змÑнено зовнÑÑÐ½Ñ Ð·Ð¼ÑннÑ
let message = 'ÐдоÑовенÑÐºÑ Ð±Ñли, ' + userName;
alert(message);
}
alert( userName ); // Ðван пеÑед викликом ÑÑнкÑÑÑ showMessage
showMessage();
alert( userName ); // Ðогдан, знаÑÐµÐ½Ð½Ñ Ð±Ñло змÑнено пÑÑÐ»Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ ÑÑнкÑÑÑ showMessage
ÐовнÑÑÐ½Ñ Ð·Ð¼Ñнна викоÑиÑÑовÑÑÑÑÑÑ ÑодÑ, коли Ð½ÐµÐ¼Ð°Ñ Ð»Ð¾ÐºÐ°Ð»ÑноÑ.
ЯкÑо вÑеÑÐµÐ´Ð¸Ð½Ñ ÑÑнкÑÑÑ Ñ Ð·Ð¼Ñнна з Ñаким Ñамим ÑмâÑм, Ñо вона пеÑекÑÐ¸Ð²Ð°Ñ Ð·Ð¾Ð²Ð½ÑÑнÑ. ÐапÑиклад, наÑÑÑпний код викоÑиÑÑовÑÑ Ð»Ð¾ÐºÐ°Ð»ÑÐ½Ñ Ð·Ð¼ÑÐ½Ð½Ñ userName. ÐовнÑÑÐ½Ñ ÑгноÑÑÑÑÑÑÑ.
let userName = 'Ðван'; // оголоÑÐµÐ½Ð½Ñ Ð·Ð¾Ð²Ð½ÑÑнÑÐ¾Ñ Ð·Ð¼ÑнноÑ
function showMessage() {
let userName = "Ðогдан"; // оголоÑÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑÐ½Ð¾Ñ Ð·Ð¼ÑнноÑ
let message = 'ÐÑивÑÑ, ' + userName; // Ðогдан
alert(message);
}
// ÑÑнкÑÑÑ Ð·Ð°Ð²Ð¶Ð´Ð¸ вÑддаÑÑÑ Ð¿ÐµÑÐµÐ²Ð°Ð³Ñ Ð»Ð¾ÐºÐ°Ð»Ñним змÑнним
showMessage();
alert( userName ); // Ðван, без змÑн, ÑÑнкÑÑÑ Ð½Ðµ змÑнила глобалÑÐ½Ñ Ð·Ð¼ÑннÑ
ÐмÑннÑ, оголоÑÐµÐ½Ñ Ð¿Ð¾Ð·Ð° бÑдÑ-Ñкими ÑÑнкÑÑÑми (ÑÐ°ÐºÑ Ñк зовнÑÑÐ½Ñ Ð·Ð¼Ñнна userName з ÐºÐ¾Ð´Ñ Ð²Ð¸Ñе), називаÑÑÑÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑÐ½Ñ Ð·Ð¼ÑннÑ.
ÐлобалÑÐ½Ñ Ð·Ð¼ÑÐ½Ð½Ñ Ð´Ð¾ÑÑÑÐ¿Ð½Ñ Ð² бÑдÑ-ÑкÑй ÑÑнкÑÑÑ (окÑÑм випадкÑв, коли глобалÑна змÑнна пеÑекÑиÑа локалÑноÑ).
ХоÑоÑÐ¾Ñ Ð¿ÑакÑÐ¸ÐºÐ¾Ñ Ð²Ð²Ð°Ð¶Ð°ÑÑÑÑÑ Ð¼ÑнÑмÑзаÑÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑÐ°Ð½Ð½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑÐ½Ð¸Ñ Ð·Ð¼ÑÐ½Ð½Ð¸Ñ . У ÑÑÑаÑÐ½Ð¾Ð¼Ñ ÐºÐ¾Ð´Ñ Ð·Ð°Ð·Ð²Ð¸Ñай Ñ Ð´ÐµÐºÑлÑка або зовÑÑм Ð½ÐµÐ¼Ð°Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑÐ½Ð¸Ñ Ð·Ð¼ÑÐ½Ð½Ð¸Ñ . ÐÑлÑÑÑÑÑÑ Ð·Ð¼ÑÐ½Ð½Ð¸Ñ Ð·Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑÑ Ð² Ð¼ÐµÐ¶Ð°Ñ ÑÑнкÑÑй. ÐÐ½Ð¾Ð´Ñ Ð±ÑÐ²Ð°Ñ ÐºÐ¾ÑиÑно збеÑÑгаÑи âзагалÑнÑâ Ð´Ð°Ð½Ñ (на ÑÑÐ²Ð½Ñ Ð¿ÑоÑкÑÑ) в ÑÐ°ÐºÐ¸Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑÐ½Ð¸Ñ Ð·Ð¼ÑÐ½Ð½Ð¸Ñ .
ÐаÑамеÑÑи
Ðи можемо пеÑедаÑи в ÑÑнкÑÑÑ Ð´Ð¾Ð²ÑлÑÐ½Ñ Ð´Ð°Ð½Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑÑи паÑамеÑÑи.
РнаÑÑÑÐ¿Ð½Ð¾Ð¼Ñ Ð¿ÑикладÑ, ÑÑнкÑÑÑ Ð¼Ð°Ñ Ð´Ð²Ð° паÑамеÑÑи: from Ñ text.
function showMessage(from, text) { // паÑамеÑÑи: from, text
alert(from + ': ' + text);
}
showMessage('Ðнна', 'ÐÑивÑÑ!'); // Ðнна: ÐÑивÑÑ! (*)
showMessage('Ðнна', "Як ÑпÑави?"); // Ðнна: Як ÑпÑави? (**)
ÐÑд ÑÐ°Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ ÑÑнкÑÑÑ Ð· Ñими паÑамеÑÑами, в ÑÑдкаÑ
(*) Ñа (**) вÑдбÑваÑÑÑÑÑ ÐºÐ¾Ð¿ÑÑÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°ÑÐµÐ½Ñ Ð¿Ð°ÑамеÑÑÑв в локалÑÐ½Ñ Ð·Ð¼ÑÐ½Ð½Ñ from Ñа text. Ð¦Ñ Ð·Ð¼ÑÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑ ÑÑнкÑÑÑ.
ÐÑÑ Ñе один пÑиклад: маÑмо змÑÐ½Ð½Ñ from, ÑÐºÑ Ð¿ÐµÑедаÑмо в ÑÑнкÑÑÑ. ÐаÑважÑе: ÑÑнкÑÑÑ Ð·Ð¼ÑнÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ from, пÑоÑе ÑÑ Ð·Ð¼Ñни не видно назовнÑ, ÑÐ¾Ð¼Ñ Ñо ÑÑнкÑÑÑ Ð·Ð°Ð²Ð¶Ð´Ð¸ оÑÑимÑÑ ÐºÐ¾Ð¿ÑÑ Ð·Ð½Ð°ÑеннÑ:
function showMessage(from, text) {
from = '*' + from + '*'; // пÑикÑаÑаÑмо "from"
alert( from + ': ' + text );
}
let from = "Ðнна";
showMessage(from, "ÐÑивÑÑ"); // *Ðнна*: ÐÑивÑÑ
// знаÑÐµÐ½Ð½Ñ "from" Ñе Ñаме, ÑÑнкÑÑÑ Ð·Ð¼Ñнила локалÑÐ½Ñ ÐºÐ¾Ð¿ÑÑ
alert( from ); // Ðнна
Ðоли знаÑÐµÐ½Ð½Ñ Ð¿ÐµÑедаÑÑÑÑÑ Ñк паÑамеÑÑ ÑÑнкÑÑÑ, Ñо його Ñе називаÑÑÑ Ð°ÑгÑменÑ.
ÐажÑÑи âна Ñ Ð»Ð¾Ð¿ÑÑкий ÑозÑмâ:
- ÐаÑамеÑÑ â Ñе змÑнна мÑж дÑжками ÑÑнкÑÑÑ (викоÑиÑÑовÑÑÑÑÑÑ Ð¿Ñд ÑÐ°Ñ Ð¾Ð³Ð¾Ð»Ð¾ÑÐµÐ½Ð½Ñ ÑÑнкÑÑÑ)
- ÐÑгÑÐ¼ÐµÐ½Ñ â Ñе знаÑеннÑ, пеÑедане в ÑÑнкÑÑÑ Ð¿Ñд ÑÐ°Ñ ÑÑ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ (викоÑиÑÑовÑÑÑÑÑÑ Ð¿Ñд ÑÐ°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÑÑнкÑÑÑ).
Ðи оголоÑÑÑмо ÑÑнкÑÑÑ, вказÑÑÑи ÑÑ Ð½Ñ Ð¿Ð°ÑамеÑÑи, поÑÑм викликаÑмо ÑÑ , пеÑедаÑÑи аÑгÑменÑи.
ÐеÑ
Ñо може ÑказаÑи, Ñо в пÑÐ¸ÐºÐ»Ð°Ð´Ñ Ð²Ð¸Ñе âÑÑнкÑÑÑ showMessage оголоÑено з двома паÑамеÑÑами, поÑÑм викликано з двома аÑгÑменÑами: from Ñ "ÐÑивÑÑ"â.
Ð¢Ð¸Ð¿Ð¾Ð²Ñ Ð·Ð½Ð°ÑеннÑ
ЯкÑо викликаÑи ÑÑнкÑÑÑ Ð±ÐµÐ· аÑгÑменÑÑв, ÑÐ¾Ð´Ñ Ð²ÑдповÑÐ´Ð½Ñ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ ÑÑанÑÑÑ undefined.
ÐапÑиклад, ÑÑнкÑÑÑ showMessage(from, text), ÑÐºÑ Ð¼Ð¸ згадÑвали виÑе, можна викликаÑи з одним аÑгÑменÑом:
showMessage('Ðнна');
Ðомилки не виникне. Такий виклик виведе "*Ðнна*: undefined". ÐÑкÑлÑки знаÑÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð¼ÑÐ½Ð½Ð¾Ñ text не задане, воно ÑÑане undefined.
Ðи можемо задаÑи Ñак зване âÑиповеâ знаÑÐµÐ½Ð½Ñ Ð¿Ð°ÑамеÑÑа, Ñке викоÑиÑÑовÑваÑимеÑÑÑÑ, ÑкÑо не задаÑи аÑгÑменÑ. ÐÐ»Ñ ÑÑого поÑÑÑбно напиÑаÑи знаÑÐµÐ½Ð½Ñ ÑеÑез =:
function showMessage(from, text = "ÑекÑÑ Ð½Ðµ задано") {
alert( from + ": " + text );
}
showMessage("Ðнна"); // Ðнна: ÑекÑÑ Ð½Ðµ задано
ТепеÑ, ÑкÑо паÑамеÑÑ text не задано, його знаÑÐµÐ½Ð½Ñ ÑÑане "ÑекÑÑ Ð½Ðµ задано".
Типове знаÑÐµÐ½Ð½Ñ Ñакож додаÑÑÑÑÑ, ÑкÑо паÑамеÑÑ ÑÑнÑÑ, але ÑÑвоÑо доÑÑвнÑÑ undefined, напÑиклад:
showMessage("Ðнна", undefined); // Ðнна: ÑекÑÑ Ð½Ðµ задано
ТÑÑ "ÑекÑÑ Ð½Ðµ задано" Ñе ÑÑдок, пÑоÑе Ñе може бÑÑи ÑкладнÑÑий виÑаз, Ñкий обÑиÑлÑÑÑÑÑÑ Ñ Ð¿ÑиÑвоÑÑÑÑÑÑ Ð»Ð¸Ñе ÑкÑо паÑамеÑÑ Ð²ÑдÑÑÑнÑй. ÐÑож, Ñакий ваÑÑÐ°Ð½Ñ Ñеж можливий:
function showMessage(from, text = anotherFunction()) {
// anotherFunction() виконÑÑÑÑÑÑ Ð»Ð¸Ñе ÑкÑо `text` не задано
// ÑезÑлÑÑÐ°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÑÑÑÑ ÑÑнкÑÑÑ Ð¿ÑиÑвоÑÑÑÑÑ Ð·Ð¼ÑннÑй `text`
}
Ð JavaScript, Ñиповий паÑамеÑÑ Ð¾Ð±ÑиÑлÑÑÑÑÑÑ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ ÑазÑ, коли викликаÑÑÑÑÑ ÑÑнкÑÑÑ Ð±ÐµÐ· вÑдповÑдного паÑамеÑÑÑ.
РпÑÐ¸ÐºÐ»Ð°Ð´Ñ Ð²Ð¸Ñе, ÑÑнкÑÑÑ anotherFunction() не виклиÑеÑÑÑÑ, ÑкÑо бÑде задано паÑамеÑÑ text.
Ð ÑнÑого бокÑ, вона бÑде викликаÑиÑÑ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ ÑазÑ, коли text вÑдÑÑÑнÑй.
ÐÑлÑка ÑокÑв ÑÐ¾Ð¼Ñ JavaScript не пÑдÑÑимÑвав ÑинÑакÑÐ¸Ñ ÑÐ¸Ð¿Ð¾Ð²Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ñ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑÑв. Ð¢Ð¾Ð¼Ñ Ð»Ñди викоÑиÑÑовÑвали ÑнÑÑ ÑпоÑоби ÑÑ Ð²Ð¸Ð·Ð½Ð°ÑеннÑ.
ÐÐ¸Ð½Ñ Ð¼Ð¸ можемо зÑÑÑÑÑÑи ÑÑ Ñ ÑÑаÑÐ¸Ñ ÑкÑипÑÐ°Ñ .
ÐапÑиклад, Ñвна пеÑевÑÑка на undefined:
function showMessage(from, text) {
if (text === undefined) {
text = 'ÑекÑÑ Ð¿Ð¾Ð²ÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²ÑдÑÑÑнÑй';
}
alert( from + ": " + text );
}
â¦Ðбо за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ Ð¾Ð¿ÐµÑаÑоÑа ||:
function showMessage(from, text) {
// ЯкÑо знаÑÐµÐ½Ð½Ñ Ñ Ð·Ð¼ÑннÑй text Ð´Ð°Ñ false, пÑизнаÑаÑÑÑÑÑ Ñипове знаÑеннÑ
// Ñе пеÑедбаÑаÑ, Ñо text == "" Ñе Ñе Ñаме, Ñо Ñ Ð¹Ð¾Ð³Ð¾ повна вÑдÑÑÑнÑÑÑÑ
text = text || 'ÑекÑÑ Ð¿Ð¾Ð²ÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²ÑдÑÑÑнÑй';
...
}
ÐлÑÑеÑнаÑÐ¸Ð²Ð½Ñ ÑÐ¸Ð¿Ð¾Ð²Ñ Ð¿Ð°ÑамеÑÑи
Ðнколи Ð²Ð¸Ð½Ð¸ÐºÐ°Ñ Ð½ÐµÐ¾Ð±Ñ ÑднÑÑÑÑ Ð¿ÑиÑвоÑÑи ÑÐ¸Ð¿Ð¾Ð²Ñ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð¼ÑÐ½Ð½Ð¸Ñ Ð¿Ñд ÑÐ°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÑÑнкÑÑÑ, а не пÑд ÑÐ°Ñ ÑÑ Ð¾Ð³Ð¾Ð»Ð¾ÑеннÑ.
ÐÑд ÑÐ°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÑÑнкÑÑÑ, ми можемо пеÑевÑÑиÑи, Ñи паÑамеÑÑ Ð½Ð°Ð´Ð°Ð½Ð¾, поÑÑвнÑÑÑи його з undefined:
function showMessage(text) {
// ...
if (text === undefined) { // ÑкÑо паÑамеÑÑ Ð²ÑдÑÑÑнÑй
text = 'поÑÐ¾Ð¶Ð½Ñ Ð¿Ð¾Ð²ÑдомленнÑ';
}
alert(text);
}
showMessage(); // поÑÐ¾Ð¶Ð½Ñ Ð¿Ð¾Ð²ÑдомленнÑ
â¦Ðбо ми можемо викоÑиÑÑаÑи опеÑаÑÐ¾Ñ ||:
function showMessage(text) {
// ÑкÑо text не задано (знаÑÐµÐ½Ð½Ñ `undefined`) або `null`, ÑÐ¾Ð´Ñ Ð¿ÑиÑвоÑÑи ÑÑдок 'поÑожнÑо'
text = text || 'поÑожнÑо';
...
}
СÑÑаÑÐ½Ñ ÑÑÑÑÑ JavaScript пÑдÑÑимÑÑÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ null-злиÑÑÑ ??. Ðого кÑаÑе викоÑиÑÑовÑваÑи, коли âмайже falseâ знаÑеннÑ, ÑÐ¸Ð¿Ñ 0, маÑÑÑ Ð²Ð²Ð°Ð¶Ð°ÑиÑÑ Ð·Ð° âноÑмалÑнÑâ:
function showCount(count) {
// ÑкÑо count Ð¼Ð°Ñ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ undefined Ñи null, показаÑи "невÑдомо"
alert(count ?? "невÑдомо");
}
showCount(0); // 0
showCount(null); // невÑдомо
showCount(); // невÑдомо
ÐовеÑÐ½ÐµÐ½Ð½Ñ Ð·Ð½Ð°ÑеннÑ
Як ÑезÑлÑÑÐ°Ñ ÑÑнкÑÑÑ Ð¼Ð¾Ð¶Ðµ повеÑÑаÑи назад знаÑÐµÐ½Ð½Ñ Ð² код, Ñкий викликав ÑÑ ÑÑнкÑÑÑ.
ÐайпÑоÑÑÑÑий пÑиклад â ÑÑнкÑÑÑ, Ñка ÑÑмÑÑ Ð´Ð²Ð° знаÑеннÑ:
function sum(a, b) {
return a + b;
}
let result = sum(1, 2);
alert( result ); // 3
ÐиÑекÑива return може бÑÑи в бÑдÑ-ÑÐºÐ¾Ð¼Ñ Ð¼ÑÑÑÑ ÑÑнкÑÑÑ. Ðоли Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ÑÑÐ³Ð°Ñ ÑÑÑÑ Ð´Ð¸ÑекÑиви, ÑÑнкÑÑÑ Ð·ÑпинÑÑÑÑÑÑ, Ñ Ð² код, Ñкий викликав ÑÑ ÑÑнкÑÑÑ, повеÑÑаÑÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ (в пÑÐ¸ÐºÐ»Ð°Ð´Ñ Ð²Ð¸Ñе, Ñе знаÑÐµÐ½Ð½Ñ Ð½Ð°Ð´Ð°ÑÑÑÑÑ Ð·Ð¼ÑннÑй result).
РоднÑй ÑÑнкÑÑÑ Ð¼Ð¾Ð¶Ðµ бÑÑи декÑлÑка диÑекÑив return. ÐапÑиклад:
function checkAge(age) {
if (age >= 18) {
return true;
} else {
return confirm('У Ð²Ð°Ñ Ñ Ð´Ð¾Ð·Ð²Ñл ваÑиÑ
баÑÑкÑв?');
}
}
let age = prompt('СкÑлÑки вам ÑокÑв?', 18);
if ( checkAge(age) ) {
alert( 'ÐоÑÑÑп надано' );
} else {
alert( 'У доÑÑÑÐ¿Ñ Ð²Ñдмовлено' );
}
Ðожна викоÑиÑÑовÑваÑи return без знаÑеннÑ. Це пÑизведе до негайного виÑ
Ð¾Ð´Ñ Ð· ÑÑнкÑÑÑ.
ÐапÑиклад:
function showMovie(age) {
if ( !checkAge(age) ) {
return;
}
alert( "ÐоказÑÑмо ÑÑлÑм" ); // (*)
// ...
}
Ð ÐºÐ¾Ð´Ñ Ð²Ð¸Ñе, ÑкÑо checkAge(age) повеÑне false, ÑÐ¾Ð´Ñ ÑÑнкÑÑÑ showMovie не дÑйде до Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ alert.
return, або без return повеÑÑÐ°Ñ undefinedЯкÑо ÑÑнкÑÑÑ Ð½Ðµ повеÑÑÐ°Ñ Ð·Ð½Ð°ÑеннÑ, ÑÐ¾Ð´Ñ âповеÑненеâ знаÑÐµÐ½Ð½Ñ Ð±Ñде undefined:
function doNothing() { /* поÑожнÑо */ }
alert( doNothing() === undefined ); // true
ÐоÑожнÑй return Ñе Ñе Ñаме, Ñо return undefined:
function doNothing() {
return;
}
alert( doNothing() === undefined ); // true
return Ñ Ð·Ð½Ð°ÑеннÑмÐÐ½Ð¾Ð´Ñ ÐºÐ¾ÑÑиÑÑ Ð¿ÐµÑенеÑÑи довгий виÑаз пÑÑÐ»Ñ return на новий ÑÑдок, оÑÑ Ñак:
return
('деÑкий' + 'довгий' + 'виÑаз' + 'або' + 'Ñо' * f(a) + f(b))
Це не ÑпÑаÑÑÑ, ÑÐ¾Ð¼Ñ Ñо JavaScript вважаÑиме новий ÑÑдок пÑÑÐ»Ñ return за кÑÐ°Ð¿ÐºÑ Ð· комоÑ. Це пÑаÑÑваÑиме оÑÑ Ñак:
return;
('деÑкий' + 'довгий' + 'виÑаз' + 'або' + 'Ñо' * f(a) + f(b))
ТобÑо, повеÑнеÑÑÑÑ Ð¿Ð¾ÑожнÑй ÑезÑлÑÑаÑ.
ЯкÑо ми Ñ
оÑемо повеÑнÑÑи довгий виÑаз, Ñкий займе декÑлÑка ÑÑдкÑв, ми Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð¿Ð¸ÑаÑи його на Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑÑÐ´ÐºÑ Ð· return. Ðбо обгоÑнÑÑи його в дÑжки. ÐÑÑ Ñак:
return (
'деÑкий' + 'довгий' + 'виÑаз'
+ 'або' +
'Ñо' * f(a) + f(b)
)
Такий ваÑÑÐ°Ð½Ñ Ð¿ÑаÑÑваÑиме Ñак, Ñк ми задÑмали.
ÐайменÑÐ²Ð°Ð½Ð½Ñ ÑÑнкÑÑÑ
ФÑнкÑÑÑ Ð²Ð¸ÐºÐ¾Ð½ÑÑÑÑ Ð´ÑÑ. Ð¢Ð¾Ð¼Ñ Ð² ÑÑ Ð½ÑÑ ÑÐ¼ÐµÐ½Ð°Ñ Ð·Ð°Ð·Ð²Ð¸Ñай викоÑиÑÑовÑÑÑÑ Ð´ÑÑÑлова. ÐмâÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ðµ бÑÑи лаконÑÑним, повинне ÑкнайÑоÑнÑÑе опиÑÑваÑи, Ñо ÑобиÑÑ ÑÑнкÑÑÑ, Ñоб кожен Ñ Ñо ÑиÑÐ°Ñ ÐºÐ¾Ð´ змÑг зÑозÑмÑÑи, Ñо Ñаме ÑобиÑÑ ÑÑнкÑÑÑ.
ÐоÑиÑена пÑакÑика ÑозпоÑинаÑи ÑмâÑ ÑÑнкÑÑÑ Ð·Ñ ÑловеÑного пÑеÑÑкÑÑ, Ñкий опиÑÑÑ Ð´ÑÑ. Ð ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð°Ñ Ð±ÑÑи домовленÑÑÑÑ Ñодо знаÑÐµÐ½Ð½Ñ Ð¿ÑеÑÑкÑÑв.
ÐапÑиклад, ÑÑнкÑÑÑ, ÑÐºÑ Ð¿Ð¾ÑинаÑÑÑÑÑ Ð· пÑеÑÑкÑÑ "show" зазвиÑай ÑоÑÑ Ð¿Ð¾ÐºÐ°Ð·ÑÑÑÑ.
ФÑнкÑÑÑ, ÑÐºÑ Ð¿Ð¾ÑинаÑÑÑÑÑ Ð· â¦
"getâ¦"â повеÑÑаÑÑÑ Ð·Ð½Ð°ÑеннÑ,"calcâ¦"â ÑоÑÑ Ð¾Ð±ÑиÑлÑÑÑÑ,"createâ¦"â ÑоÑÑ ÑÑвоÑÑÑÑÑ,"checkâ¦"â ÑоÑÑ Ð¿ÐµÑевÑÑÑÑÑÑ Ñ Ð¿Ð¾Ð²ÐµÑÑаÑÑÑ Ð±Ñлеве знаÑеннÑ.
ÐÑÑ Ð¿Ñиклади ÑÐ°ÐºÐ¸Ñ Ñмен:
showMessage(..) // показÑÑ Ð¿Ð¾Ð²ÑдомленнÑ
getAge(..) // повеÑÑÐ°Ñ Ð²Ñк (ÑкоÑÑ Ð¹Ð¾Ð³Ð¾ оÑÑимÑÑ Ð°Ð±Ð¾ обÑиÑлÑÑ)
calcSum(..) // обÑиÑлÑÑ ÑÑÐ¼Ñ Ñ Ð¿Ð¾Ð²ÐµÑÑÐ°Ñ ÑезÑлÑÑаÑ
createForm(..) // ÑÑвоÑÑÑ ÑоÑÐ¼Ñ (Ñ Ð·Ð°Ð·Ð²Ð¸Ñай ÑÑ Ð¿Ð¾Ð²ÐµÑÑаÑ)
checkPermission(..) // пеÑевÑÑÑÑ Ð´Ð¾ÑÑÑп, повеÑÑÐ°Ñ true/false
ЯкÑо Ñ Ð¿ÑеÑÑкÑи, поглÑд на ÑмâÑ ÑÑнкÑÑÑ Ð´Ð°Ñ Ð·ÑозÑмÑÑи, ÑÐºÑ ÑобоÑÑ Ð²Ð¾Ð½Ð° виконÑÑ Ñ Ñке знаÑÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÑÑаÑ.
ФÑнкÑÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° ÑобиÑи Ñаме Ñе, Ñо напиÑано в ÑÑ ÑменÑ, не бÑлÑÑе.
ÐÐ²Ñ Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ñ Ð´ÑÑ Ð·Ð°Ð·Ð²Ð¸Ñай заÑлÑговÑÑÑÑ Ð´Ð²Ð¾Ñ ÑÑнкÑÑй, навÑÑÑ ÑкÑо вони зазвиÑай викликаÑÑÑÑÑ Ñазом (Ñ ÑÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð¼Ð¸ можемо ÑÑвоÑиÑи 3-Ñ ÑÑнкÑÑÑ, Ñка Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ñ ÑÑ Ð´Ð²Ñ).
ÐÑÑ Ð´ÐµÐºÑлÑка пÑикладÑв, ÑÐºÑ Ð¿Ð¾ÑÑÑÑÑÑÑ Ñе пÑавило:
getAgeâ ÑÑнкÑÑÑ Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ñalertз вÑком (а повинна лиÑе оÑÑимÑваÑи вÑк).createFormâ ÑÑнкÑÑÑ Ð·Ð¼ÑнÑÑ Ð´Ð¾ÐºÑменÑ, додаÑÑи ÑоÑÐ¼Ñ Ð´Ð¾ Ð½ÐµÑ (а повинна лиÑе ÑÑвоÑиÑи ÑоÑÐ¼Ñ Ñ ÑÑ Ð²ÐµÑнÑÑи).checkPermissionâ ÑÑнкÑÑÑ Ð²ÑдобÑÐ°Ð¶Ð°Ñ Ð¿Ð¾Ð²ÑдомленнÑдоÑÑÑп надано/вÑÐ´Ñ Ð¸Ð»ÐµÐ½Ð¾(а повинна лиÑе повеÑÑаÑи ÑезÑлÑÑаÑtrue/false).
Ð¦Ñ Ð¿Ñиклади пеÑедбаÑаÑÑÑ Ð·Ð°Ð³Ð°Ð»Ñне знаÑÐµÐ½Ð½Ñ Ð¿ÑеÑÑкÑÑв. Ðи Ñа ваÑа команда можеÑе вÑлÑно домовлÑÑиÑÑ Ð¿Ñо ÑнÑÑ Ð·Ð½Ð°ÑеннÑ, але зазвиÑай вони не ÑилÑно вÑдÑÑзнÑÑÑÑÑÑ. У бÑдÑ-ÑÐºÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð²Ð¸ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ ÑÑÑко ÑозÑмÑÑи, Ñо ознаÑÐ°Ñ Ð¿ÑеÑÑкÑ, Ñо може ÑобиÑи пÑеÑÑкÑна ÑÑнкÑÑÑ, а Ñо нÑ. УÑÑ ÑÑнкÑÑÑ Ð· однаковими пÑеÑÑкÑами Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð¿ÑдкоÑÑÑиÑÑ Ð¿Ñавилам. Ркоманда повинна дÑлиÑиÑÑ Ð·Ð½Ð°Ð½Ð½Ñми.
ФÑнкÑÑÑ, ÑÐºÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑÑÑÑÑ Ð´Ñже ÑаÑÑо деколи маÑÑÑ Ð´Ñже коÑоÑÐºÑ Ñмена.
ÐапÑиклад, ÑÑеймвоÑк jQuery оголоÑÑÑ ÑÑнкÑÑÑ Ð·Ð½Ð°ÐºÐ¾Ð¼ $. ÐÑблÑоÑека Lodash Ð¼Ð°Ñ Ð²Ð±ÑÐ´Ð¾Ð²Ð°Ð½Ñ ÑÑнкÑÑÑ, Ñка називаÑÑÑÑÑ _.
Це винÑÑки. Ðагалом Ñмена ÑÑнкÑÑй Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð±ÑÑи ÑÑиÑлими Ñа опиÑовими.
ФÑнкÑÑÑ == ÐоменÑаÑÑ
ФÑнкÑÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð±ÑÑи коÑоÑкими Ñа ÑобиÑи ÑоÑÑ Ð¾Ð´Ð½Ðµ. ЯкÑо Ñе ÑоÑÑ Ð²ÐµÐ»Ð¸ÐºÐµ, в ÑÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð´Ð¾ÑÑлÑно ÑоздÑлиÑи ÑÐ°ÐºÑ ÑÑнкÑÑÑ Ð½Ð° декÑлÑка менÑÐ¸Ñ . ÐÐ½Ð¾Ð´Ñ Ð´Ð¾ÑÑимÑваÑиÑÑ ÑÑого пÑавила доÑиÑÑ Ð²Ð°Ð¶ÐºÐ¾, але Ñе, безÑмовно, Ñ Ð¾ÑоÑа пÑакÑика.
ÐÐµÐ²ÐµÐ»Ð¸ÐºÑ ÑÑнкÑÑÑ Ð½Ðµ ÑÑлÑки полегÑÑÑÑÑ Ð¿ÐµÑевÑÑÐºÑ Ñа Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ â Ñаме ÑÑ Ð½Ñ ÑÑнÑÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑÑ ÑÐ¾Ð»Ñ Ñ Ð¾ÑоÑÐ¸Ñ ÐºÐ¾Ð¼ÐµÐ½ÑаÑÑв, ÑÐºÑ Ð¿Ð¾ÐºÑаÑÑÑÑÑ Ð·ÑозÑмÑлÑÑÑÑ ÐºÐ¾Ð´Ñ!
ÐÑÑ Ð´Ð»Ñ Ð¿ÑикладÑ, поÑÑвнÑйÑе Ð´Ð²Ñ ÑÑнкÑÑÑ showPrimes(n). Ðожна з ниÑ
виводиÑÑ Ð¿ÑоÑÑÑ ÑиÑла до n.
ÐеÑÑий ваÑÑÐ°Ð½Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑ Ð¼ÑÑÐºÑ nextPrime:
function showPrimes(n) {
nextPrime: for (let i = 2; i < n; i++) {
for (let j = 2; j < i; j++) {
if (i % j == 0) continue nextPrime;
}
alert( i ); // пÑоÑÑе ÑиÑло
}
}
ÐÑÑгий ваÑÑÐ°Ð½Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑ Ð´Ð¾Ð´Ð°ÑÐºÐ¾Ð²Ñ ÑÑнкÑÑÑ isPrime(n), Ñоб пеÑевÑÑÑÑи, Ñи ÑиÑло пÑоÑÑе:
function showPrimes(n) {
for (let i = 2; i < n; i++) {
if (!isPrime(i)) continue;
alert(i); // пÑоÑÑе ÑиÑло
}
}
function isPrime(n) {
for (let i = 2; i < n; i++) {
if ( n % i == 0) return false;
}
return true;
}
ÐÑÑгий ваÑÑÐ°Ð½Ñ Ð»ÐµÐ³Ñе зÑозÑмÑÑи, Ñи не Ñак? ÐамÑÑÑÑ ÑаÑÑини ÐºÐ¾Ð´Ñ Ð¼Ð¸ баÑимо Ð½Ð°Ð·Ð²Ñ Ð´ÑÑ (isPrime). ÐÐ½Ð¾Ð´Ñ ÑозÑобники називаÑÑÑ Ñакий код Ñамо докÑменÑованим.
ÐÑже, ÑÑнкÑÑÑ Ð¼Ð¾Ð¶Ð½Ð° ÑÑвоÑÑваÑи, навÑÑÑ ÑкÑо ми не маÑмо намÑÑÑ Ð¿Ð¾Ð²ÑоÑно ÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи. Ðони ÑÑÑÑкÑÑÑÑÑÑÑ ÐºÐ¾Ð´ Ñ ÑоблÑÑÑ Ð¹Ð¾Ð³Ð¾ ÑиÑабелÑним Ñа зÑозÑмÑлим.
ÐÑдÑÑмки
ÐголоÑÐµÐ½Ð½Ñ ÑÑнкÑÑÑ Ð²Ð¸Ð³Ð»ÑÐ´Ð°Ñ Ð¾ÑÑ Ñак:
function ÑмâÑ(паÑамеÑÑи, ÑоздÑленÑ, комоÑ) {
/* ÑÑло, код ÑÑнкÑÑÑ */
}
- ÐнаÑеннÑ, ÑÐºÑ Ð¿ÐµÑедаÑÑÑÑÑ Ð² ÑÑнкÑÑÑ Ñк паÑамеÑÑи, копÑÑÑÑÑÑÑ Ð² локалÑÐ½Ñ Ð·Ð¼ÑннÑ.
- ФÑнкÑÑÑ Ð¼Ð°ÑÑÑ Ð´Ð¾ÑÑÑп до зовнÑÑнÑÑ Ð·Ð¼ÑÐ½Ð½Ð¸Ñ . Ðле Ñе пÑаÑÑÑ ÑÑлÑки зÑеÑедини назовнÑ. Ðод поза ÑÑнкÑÑÑÑ Ð½Ðµ Ð¼Ð°Ñ Ð´Ð¾ÑÑÑÐ¿Ñ Ð´Ð¾ локалÑÐ½Ð¸Ñ Ð·Ð¼ÑÐ½Ð½Ð¸Ñ ÑÑнкÑÑÑ.
- ФÑнкÑÑÑ Ð¼Ð¾Ð¶Ðµ повеÑÑаÑи знаÑеннÑ. ЯкÑо ÑÑого не вÑдбÑваÑÑÑÑÑ, ÑезÑлÑÑÐ°Ñ Ð±Ñде
undefined.
ÐÐ»Ñ Ñого, Ñоб зÑобиÑи код ÑиÑÑим Ñ Ð·ÑозÑмÑлим, ÑекомендÑÑÑÑÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи локалÑÐ½Ñ Ð·Ð¼ÑÐ½Ð½Ñ Ñа паÑамеÑÑи ÑÑнкÑÑÑ, не коÑиÑÑÑваÑиÑÑ Ð·Ð¾Ð²Ð½ÑÑнÑми змÑнними.
Ðавжди легÑе зÑозÑмÑÑи ÑÑнкÑÑÑ, Ñка оÑÑимÑÑ Ð¿Ð°ÑамеÑÑи, пÑаÑÑÑ Ð· ними Ñа повеÑÑÐ°Ñ ÑезÑлÑÑаÑ. Ðа вÑдмÑÐ½Ð½Ñ Ð²Ñд ÑÑнкÑÑÑ, в ÑÐºÐ¾Ñ Ð½ÐµÐ¼Ð°Ñ Ð¿Ð°ÑамеÑÑÑв, але Ñка змÑнÑÑ Ð·Ð¾Ð²Ð½ÑÑÐ½Ñ Ð·Ð¼ÑннÑ, Ñо може пÑизводиÑи до побÑÑÐ½Ð¸Ñ ÐµÑекÑÑв.
ÐайменÑÐ²Ð°Ð½Ð½Ñ ÑÑнкÑÑй:
- ÐмâÑ ÑÑнкÑÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ðµ бÑÑи коÑоÑким Ñ ÑÑÑко вÑдобÑажаÑи, Ñо ÑобиÑÑ ÑÑнкÑÑÑ. ÐобаÑивÑи виклик ÑÑнкÑÑÑ Ð² кодÑ, ви Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð·ÑÐ°Ð·Ñ Ð·ÑозÑмÑÑи, Ñо ÑÑнкÑÑÑ ÑобиÑÑ, Ñ Ñо повеÑÑаÑ.
- ФÑнкÑÑÑ â Ñе дÑÑ, ÑÐ¾Ð¼Ñ ÑÑ ÑмâÑ Ð·Ð°Ð·Ð²Ð¸Ñай ÑкладаÑÑÑÑÑ Ð· дÑÑÑлова.
- РбагаÑо загалÑнопÑийнÑÑиÑ
пÑеÑÑкÑÑв, ÑÐ°ÐºÑ Ñк
createâ¦,showâ¦,getâ¦,checkâ¦ÑоÑо. ÐикоÑиÑÑовÑйÑе ÑÑ , Ñоб поÑÑниÑи, Ñо ÑобиÑÑ ÑÑнкÑÑÑ.
ФÑнкÑÑÑ â Ñе оÑÐ½Ð¾Ð²Ð½Ñ Ð±ÑдÑвелÑÐ½Ñ Ð±Ð»Ð¾ÐºÐ¸ ÑкÑипÑÑв. Ðи ÑозглÑнÑли лиÑе оÑнови ÑÑнкÑÑй в JavaScript, пÑоÑе вже заÑаз ÑÑого доÑÑаÑнÑо, Ñоб поÑаÑи ÑÑ ÑÑвоÑÑваÑи Ñа викоÑиÑÑовÑваÑи. Це лиÑе поÑаÑок ÑлÑÑ Ñ. Ðи бÑдемо неодноÑазово повеÑÑаÑиÑÑ Ð´Ð¾ ÑÑнкÑÑй Ñ Ð°Ð½Ð°Ð»ÑзÑваÑимемо ÑÑ Ð²Ñе глибÑе Ñ Ð³Ð»Ð¸Ð±Ñе.
ÐоменÑаÑÑ
<code>, Ð´Ð»Ñ ÐºÑлÑÐºÐ¾Ñ ÑÑдкÑв â обгоÑнÑÑÑ ÑÑ Ñегом<pre>, Ð´Ð»Ñ Ð¿Ð¾Ð½Ð°Ð´ 10 ÑÑдкÑв â викоÑиÑÑовÑйÑе пÑÑоÑниÑÑ (plnkr, jsbin, codepenâ¦)