Size: a a a

2019 June 02

VL

Vapaka Loko in javascript_ru
например
function square(x) {
   x * x;
}
var demo = square(3);
console.log(demo)
если не вернуть выведет андефайнд ,но есть функции ,в которых функцию например можно присвоить переменной,и вывести ее через другую переменную,но там возвращать ничего не нужно
источник

VL

Vapaka Loko in javascript_ru
как так?
источник

DE

Denis Efremov in javascript_ru
походу твой выход
источник

VL

Vapaka Loko in javascript_ru
Denis Efremov
походу твой выход
я серъезно спрашиваю
источник

DE

Denis Efremov in javascript_ru
С чего ты решил, что я шучу?
источник

DE

Denis Efremov in javascript_ru
Я бы и сам ещё раз послушал
источник

DE

Denis Efremov in javascript_ru
Vapaka Loko
я серъезно спрашиваю
Почитай про грязные функции
источник

YK

Yuri Katkov in javascript_ru
Vapaka Loko
почему есть функции,в которых надо возвращать значение,а в некоторых нет.
потому что язык позволяет писать и возвращая значение, и не возвращая
источник

YK

Yuri Katkov in javascript_ru
в последнее время осознали, что лучше стараться чтобы твоя функция была "чистой" - ничего не читала и не меняла во внешнем мире и была детерминистической:  всегда возвращала одно и то же значение при одних и тех же аргументах.
источник

YK

Yuri Katkov in javascript_ru
если твоя функция - "чистая", то ее, например, очень просто переместить из одного модуля программы в другой, не надо думать о том, что она будет работать неправильно, если не переместить какую-нибудь переменную, от которой она зависит. Еще ее проще тестировать - просто вызвал с параметрами, проверил возвращаемое значение - вот тебе и тест.
источник

YK

Yuri Katkov in javascript_ru
еще ее можно вызывать сколько угодно раз и быть уверенным, что она не меняет внешний мир непредсказуемым образом - а значит можно засовывать ее в какой-нибудь Array.prototype.map, или еще куда-нить
источник

YK

Yuri Katkov in javascript_ru
Заметка для гиков: любые функции в классах, которые нельзя сделать статическими - не чистые. Потому что раз нельзя сделать статическим - значит используют this. А this - это неявная зависимость.
источник

DE

Denis Efremov in javascript_ru
Yuri Katkov
Заметка для гиков: любые функции в классах, которые нельзя сделать статическими - не чистые. Потому что раз нельзя сделать статическим - значит используют this. А this - это неявная зависимость.
Но они могут изменять сам класс
источник

DE

Denis Efremov in javascript_ru
Yuri Katkov
еще ее можно вызывать сколько угодно раз и быть уверенным, что она не меняет внешний мир непредсказуемым образом - а значит можно засовывать ее в какой-нибудь Array.prototype.map, или еще куда-нить
Едва ли мап чистый
источник

YK

Yuri Katkov in javascript_ru
Denis Efremov
Но они могут изменять сам класс
объект, которому принадлежит функция - это внешнее окружение функции
источник

DE

Denis Efremov in javascript_ru
Что это за объект?
источник

YK

Yuri Katkov in javascript_ru
ну ладно, не так выразился, функции ни к кому не принадлежат
источник

YK

Yuri Katkov in javascript_ru
мой пойнт в том, что если ты используешь this внутри своей функции, но ты не передал this через аргументы функции - функция не чистая
источник

DE

Denis Efremov in javascript_ru
Yuri Katkov
мой пойнт в том, что если ты используешь this внутри своей функции, но ты не передал this через аргументы функции - функция не чистая
Почему если ты передаешь объект в функцию и меняешь его, ты считаешь это чистой функцией? Ведь это не так!
источник

YK

Yuri Katkov in javascript_ru
Denis Efremov
Почему если ты передаешь объект в функцию и меняешь его, ты считаешь это чистой функцией? Ведь это не так!
я этого нигде не говорил
источник