Функции


#1

Обсуждение курса «Функции»


#2

На стр. 17 “Немного приберёмся” курса “Функции” и в теории и в задании говорится о вводе переменных “flightsVariant1” и “flightsVariant2”. Но для решения задания имена этих переменных должны быть заданы без “s”: “flightVariant1”


#5

Как лучше называть параметры функции? Должно ли имя параметра функции быть уникальным или может совпадать с именем глобальной переменной?

var userName = 'Ivan';
var sayHello = function (userName) {
   console.log (userName + ', hello!');
};

так нормально делать?


#6

ну вообще нет, лучше так не делать. А то потом запутаетесь, а тот, кто ваш код будет поддерживать - будет вспоминать ваших родственников и в какой позе и у кого на спине он их вспоминать будет =)

параметры лучше конечно не путать с глобальными переменными. Дело в том, что параметры тоже создаются как локальные переменные внутри функции, т.е. все равно что мы объявим их явно внутри функции.
что я имею ввиду: вызов функции с таким именем отработает параметр и примет его как аргумент внутри консольлога.
вызов же другой функции с таким именем возьмет как аргумент именно глобальную переменную.
например, если в ваш код дописать:
sayHello('Игорь'); ====> 'Игорь, hello!' // тут мы строку передаем в функцию
alert(userName); ====> 'Ivan' // тут мы переменную передаем в метод
Стоит понимать, что операции внутри функции над userName в таком случае выполняются только над локальной переменной, не затрагивая глобальную.
К примеру, если мы допишем нашу функцию, перед консоль логом:
userName = userName + '-кун';
то при вызове функции получим: 'Игорь-кун, hello!'
вызов метода просто даст нам 'Ivan'.