1-js/02-first-steps/14-function-basics#148
1-js/02-first-steps/14-function-basics#148iliakan merged 21 commits intojavascript-tutorial:masterfrom
Conversation
…ub.com/dandgerson/ru.javascript.info into 1-js/02-first-steps/14-function-basics
iliakan
left a comment
There was a problem hiding this comment.
Пожалуйста, внеси изменения. Спасибо!
| Следующая функция возвращает `true`, если параметр `age` больше `18`. | ||
|
|
||
| Otherwise it asks for a confirmation and returns its result: | ||
| В ином случае она задаёт вопрос посредством вызова `confirm` и возвращает его результат: |
There was a problem hiding this comment.
В ином случае она запрашивает подтверждение через confirm и возвращает его результат:
| ``` | ||
|
|
||
| Note that the parentheses around `age > 18` are not required here. They exist for better readabilty. | ||
| Обратите внимание, что круглые скобки вокруг `age > 18` не обязательны. Их наличие необходимо для более лучшего понимания. |
There was a problem hiding this comment.
Они здесь для лучшей читаемости кода.
| ``` | ||
|
|
||
| P.S. In the case of an equality `a == b` it does not matter what to return. No newline at end of file | ||
| P.S. В случае равенства `a == b` не имеет значения, что вернёт функция. |
| ``` | ||
|
|
||
| The `function` keyword goes first, then goes the *name of the function*, then a list of *parameters* between the parentheses (empty in the example above) and finally the code of the function, also named "the function body", between curly braces. | ||
| Вначале идет ключевое слово `function`, после него *имя функции*, затем список *параметров* в круглых скобках (в примере выше он пустой) и, наконец, код функции, называемый "телом функции", расположенный внутри фигурных скобок. |
There was a problem hiding this comment.
, также называемый "телом функции", внутри фигурных скобок
| ``` | ||
|
|
||
| The outer variable is only used if there's no local one. So an occasional modification may happen if we forget `let`. | ||
| Внешние переменные используются только если в теле функции нет локальных. Это случается, если мы забываем объявить их с помощью ключевого слова `let`. |
There was a problem hiding this comment.
Внешняя переменная используется только если внутри функции нет такой локальной. (второе предложение удали плиз)
| - `checkPermission` -- будет плохим выбором, если функция будет отображать сообщение с текстом `access granted/denied` (должна только выполнять проверку и возвращать её результат). | ||
|
|
||
| These examples assume common meanings of prefixes. What they mean for you is determined by you and your team. Maybe it's pretty normal for your code to behave differently. But you should have a firm understanding of what a prefix means, what a prefixed function can and cannot do. All same-prefixed functions should obey the rules. And the team should share the knowledge. | ||
| Эти примеры предполагают общие смыслы префиксов. Что они значат для вас определяете вы и команда разработчиков, частью которой вы являетесь. Совершенно нормальным, если в вашем коде они будут означать другое. Но вы должны твёрдо понимать, что означают префиксы имён, что функция с ним может делать, а что нет. Все одно-префиксные функции должны подчиняться одним правилам. И все разработчики в команде должны знать об этом. |
There was a problem hiding this comment.
В этих примерах использовались общепринятые смыслы префиксов. Конечно, вы в команде можете принять и другие значения, но обычно они мало отличаются от общепринятых. В любом случае вы и ваша команда должны точно понимать, что значит префикс, что функция с ним может делать, а что нет.
| Функции должны быть короткими и делать только что-то одно. Если это что-то большое, имеет смысл разбить функцию на несколько меньших. Иногда следовать этому правилу непросто, но это определённо хорошее правило. | ||
|
|
||
| A separate function is not only easier to test and debug -- its very existence is a great comment! | ||
| Небольшие функции не только облегчает тестирование и отладку -- само существование таких функций, выполняет роль хороших комментариев! |
| ``` | ||
|
|
||
| The second variant is easier to understand, isn't it? Instead of the code piece we see a name of the action (`isPrime`). Sometimes people refer to such code as *self-describing*. | ||
| Второй вариант более лёгок для понимания, не правда ли? Вместо куска кода мы видим название действия (`isPrime`). Иногда разработчики называют такой код *самодокументируемым*. |
| - A function may access outer variables. But it works only from inside out. The code outside of the function doesn't see its local variables. | ||
| - A function can return a value. If it doesn't, then its result is `undefined`. | ||
| - Передаваемые значения копируются в параметры функции и становятся локальными переменными. | ||
| - Функции имеют доступ к внешним переменным. Но это работает только в изнутри наружу. Код вне функции не имеет доступа к её локальным переменным. |
| - There exist many well-known function prefixes like `create…`, `show…`, `get…`, `check…` and so on. Use them to hint what a function does. | ||
| - Имя функции должно понятно и чётко отражать, что она делает. Увидев её вызов в коде, вы должны тут же понимать, что она делает, и что возвращает. | ||
| - Функция - это действие, поэтому её имя обычно является глаголом. | ||
| - Существует множество хорошо известных префиксов имён функций, таких как: `create…`, `show…`, `get…`, `check…` и т.д. Пользуйтесь ими как подсказками, поясняющими, что делает функция. |
There was a problem hiding this comment.
Есть много общепринятых префиксов, таких как: ... Желательно их использовать.
|
Please make the requested changes. After it, add a comment "/done". |
|
/done |
|
Благодарю за внимательные правки. Илья, ваш стиль ревью немного отличается, от стиля Алексея. Нужно ли мне называть коммиты более подробно для каждой правки, для очевидности к какой правке они относятся? Например: |
|
не нужно, все равно при просмотре изменений я не вижу описания коммитов |
|
🚀 |
Пересоздал PR. т.к. по ошибке вмёржил в мастер без апрува, и прежний откатили