не могу решить тест “функции высшего порядка” Найдите функции с побочными эффектами. Объяснения по курсу минимальные..... .
Добрый день.
Вопрос, на который вы не можете ответить можно объяснить очень просто:
Функции с побочными эффектами, это такие функции, которые в процессе своего выполнения меняют что-либо таким способом, при котором происходят изменения в среде исполнения.
Функции БЕЗ ПОБОЧНЫХ ЭФФЕКТОВ, вызванные дважды, не изменяют среду исполнения, даже если возвращают разный результат. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата будут возвращены разные значения.
Обратите вниманиние на выделенные “может”. Это вовсе не обязательно случиться, но МОЖЕТ случиться. Например, вы вызываете метод, который добавляет элемент в список. Допустим, вызов этого метода добавляет вам денег на лицевой счёт.
Вызываете его первый раз, и у вас становится на 10 тыс. руб. больше. Метод возвращает вам ответ: ОК!
Вызываете второй — и у вас уже 20 . тыс. руб. И снова ответ: ОК! Вы вызываете его так 10 раз и ответ всегда ОК!. Это классическая функция с побочным эффектом. Потому что у вас до этого не было 120 00 рублей на лицевом счету, а сейчас стало. Побочный эффект налицо. К вам уже выехали.
А теперь представим себе метод БЕЗ побочного эффекта. Вы вызываете функцию для того, чтобы узнать: сколько будет 10 тыс. руб. в USD СЕГОДНЯ. Вызывая её 20 раз вы каждый раз вроде как получаете разный результат, но побочного эффекта нет — ничего за пределами функции нигде не изменяется.
Другими словами, если ваша функция что-то меняет в системе, а не просто производит вычисления, то она имеет побочные эффекты.
Изучайте. Всё у вас получится. Вы там только в одном ответе ошибаетесь. Сядьте и хорошенько подумайте.
С уважением,
Станислав Евгеньевич
Спасибо за ответ “понятно что ничего не понятно “ как и весь курс по языку JavaScript.замечательная просто подача учебного материала.
Добрый день.
Вы должны обучиться JS, а не полюбить простоту. Для этого вам следует провести немного собственных исследований, разобраться, попробовать, поэкспериментировать.
Я посмотрел на ваши результаты и понял, что вы просто подбираете ответы. Включайтесь в работу серьёзнее. Всё у вас получится.
С уважением,
Станислав Евгеньевич