Вопрос №5178 от пользователя Jura Studenkov в уроке «Функции как объекты первого класса», курс «JS: Составные данные»
Предложение. Хотя бы иногда используйте обычный синтаксис для функций, вида:
может статься, будет способствовать понимаю вещей типа замыканий (хотя бы для начинающих), например тут:
что уже понятнее + объяснять концепцию на этом примере полегче наверное, и не возникнет никаких новых заклинаний типа "лексическая область определения" =) имхо конечно же
На вас давит наследие старого js ;) У людей без опыта такой проблемы нет, я уж не говорю про тех кто пришел из други языков (в большинстве которых нет ключевого слова function ).
Кирилл, тогда хотя расставляйте фигурные скобки в случае, когда в функции только одна строка, и она возвращает как результат другую функцию. Я не ставлю целью устроить холивар, поэтому не буду приводить цитаты мэтров JS-a, многие из которых довольно скептично относятся к использованию ТОЛЬКО стрелочных функций всегда и везде, но зачем затруднять восприятие материала. Слова function и return действительно есть не во всех языках программирования, но отсутствие скобок заставляет зрительно больше напрягаться, и вероятность допустить ошибку возрастает. К тому же ведь даже при использовании условия, содержащего лишь одну строку, хорошим тоном считается поставить скобки, т.к. это снижает вероятность ошибки и облегчает восприятие. Так почему со стрелочными функциями ситуация другая?
Здесь не нужны скобки. Вообще не очень понятно почему вы приводите в пример "метров js", когда рассматриваемая тема с js не очень связана, это практически один в один математическая запись. А наши курсы ориентированы на изучение фундаментальных принципов работы лежащих в основах любых языков.
К тому же ведь даже при использовании условия, содержащего лишь одну строку, хорошим тоном считается поставить скобки, т.к. это снижает вероятность ошибки и облегчает восприятие.
Вы путаете с выражениями. В случае функций порядок однозначен, потому что определение функций правоассоциативно.
И в целом я вот что скажу, то что вы сейчас описываете это вопрос непривычного восприятия опирающегося на ваш предыдущий опыт, не более того.
Тема не может быть не связана с JS, поскольку в данном курсе JS - это инструмент, с помощью которого вы доносите эти самые фундаментальные принципы. И на слайде - не математика, а код.
Про метров JS - мысль была высказана к тому, что НЕТ такой ситуации в области разработки на JS, когда "function" - вчерашний день, а "стрелочные функции" - наше единственное все. Это - мнение бытующее на Хекслете. Имеющее право на существование. Но не выдавайте это за абсолют, ведь это не так.
По поводу непривычного восприятия - я и не отрицаю. Но обращал внимание на этот момент потому, что скобки и табуляцию выдумали не просто так. И код со скобками и табуляцией (и подсветкой, да :) ) читать проще, чем без них.
Вы можете думать что тема "связана с js", но я как автор курсов закладывал в него свое видение, и если вы его не видите это не значит что его нет. В том что вы проходите, гораздо больше скрытого смысла чем кажется на первый взгляд и да, язык не важен и эта тема не связана с js, как бы вам того не хотелось. Я рассказываю здесь о js ровно столько, сколько необходимо для понимания синтаксиса языка.
. многие из которых довольно скептично относятся к использованию ТОЛЬКО стрелочных функций всегда и везде, но зачем затруднять восприятие материала.
Тема не может быть не связана с JS, поскольку в данном курсе JS - это инструмент, с помощью которого вы доносите эти самые фундаментальные принципы. И на слайде - не математика, а код.
НЕТ такой ситуации в области разработки на JS, когда "function" - вчерашний день, а "стрелочные функции" - наше единственное все.
Аминь! Подписываюсь под этим =)
Кирилл, к вам такие вопросы:
Вам, как автору курсов, важно чтобы их суть была понятна тем для кого вы эти курсы создаете? Зачем "скрывать" смысл и говорить загадками когда надо делать совсем обратное!
Язык программирования это инструмент с помощью которого воплощаются все те концепции о которых идет речь в Ваших курсах. Язык js в частности это главный инструмент Профессии Фронтенд JS-программист. Как он может быть не важен здесь?
Какой скрытый смысл присутствует в словосочетании "лексическая область определения"?
// я как автор курсов закладывал в него свое видение, и если вы его не видите это не значит что его нет
Я нигде не пытался утверждать обратного. Неясно, зачем вы мне приписываете то, чего я не говорил.
// В том что вы проходите, гораздо больше скрытого смысла чем кажется на первый взгляд
За это Хекслет и любят.
// и да, язык не важен
Я нигде не пытался утверждать обратного. И понимаю, что эту тему можно было изложить через PHP или C#.
// и эта тема не связана с js, как бы вам того не хотелось.
Сначала была "не очень связана", теперь совсем не связана ) Кирилл, я конечно понимаю, о чем вы говорите. Излагаемая тема - общий принцип. JS - лишь средство для выражения этой темы. Но примеры кода - на JS. Думаю, обсуждать это далее бессмысленно. Я написал фидбек к конкретному занятию, вы написали свое отношение к нему, закончим на этом.
Об этом и речь, мы делаем курсы потому что знаем как надо делать так, чтобы получались сильные разработчики, а не javascript-программисты , а вы хотите быть javascript-программистом.