Обсуждение курса «Функции»
На стр. 17 “Немного приберёмся” курса “Функции” и в теории и в задании говорится о вводе переменных “flightsVariant1” и “flightsVariant2”. Но для решения задания имена этих переменных должны быть заданы без “s”: “flightVariant1”
Как лучше называть параметры функции? Должно ли имя параметра функции быть уникальным или может совпадать с именем глобальной переменной?
var userName = 'Ivan';
var sayHello = function (userName) {
console.log (userName + ', hello!');
};
так нормально делать?
ну вообще нет, лучше так не делать. А то потом запутаетесь, а тот, кто ваш код будет поддерживать - будет вспоминать ваших родственников и в какой позе и у кого на спине он их вспоминать будет =)
параметры лучше конечно не путать с глобальными переменными. Дело в том, что параметры тоже создаются как локальные переменные внутри функции, т.е. все равно что мы объявим их явно внутри функции.
что я имею ввиду: вызов функции с таким именем отработает параметр и примет его как аргумент внутри консольлога.
вызов же другой функции с таким именем возьмет как аргумент именно глобальную переменную.
например, если в ваш код дописать:
sayHello('Игорь');
====> 'Игорь, hello!'
// тут мы строку передаем в функцию
alert(userName);
====> 'Ivan'
// тут мы переменную передаем в метод
Стоит понимать, что операции внутри функции над userName в таком случае выполняются только над локальной переменной, не затрагивая глобальную.
К примеру, если мы допишем нашу функцию, перед консоль логом:
userName = userName + '-кун';
то при вызове функции получим: 'Игорь-кун, hello!'
вызов метода просто даст нам 'Ivan'
.
Привет, ты берешь ученики?), Очень хочу стать твоим подованом, в последнее время осваиваю js, буду рад любому твоему ответу)
это вряд ли ко мне, я сам не знаю js =) поверьте, все что тут преподают на курсах это фуфел, даже 5% реальной разработки нет
Несколько раз забегал на форум, дабы сравнить решения и подходы. И вот что бросается в глаза: в подавляющем количестве вариантов кода, при объявлении переменных используется var, тогда как на курсе совершенно четко рекомендовали let. Погуглил различия и делаю вывод, что неосознанное использование var (особенно в функциях, в теле циклов и условий!) не соответствует принципу инкапсуляции программного кода. Конечно, на данном этапе это не влияет на тестирование решения, но зачем вырабатывать вредную привычку?
Здравствуйте! В разделе Функции, по JS, в первых же заданиях по расчету воздушных миль в условиях расстояние указывается в километрах. Насколько я знаю, 1 миля (сухопутная) = 1,6 км, а морская миля 1,85 км. Но в решениях об этом ни слова