Pull to refresh

Comments 7

С репозиторием книги не надумали? Я думаю, что сообщество бы помогло с переводом.
> Символ номер N строки можно получить, добавив к ней .charAt(N)

в ES5 можно «строчка»[N]
Что-то темп поутих… Продолжение планируется?
Напишите рекурсивную функцию isEven согласно этим правилам. Она должна принимать число и возвращать булевское значение.

Имеется в виду что-то такое?
function isEven(num){
 if(num == 0) return true;
 if(num == 1) return false;
 return isEven(num - 2 * (num > 0 ? 1 : -1));
}

Я тут, конечно, усложнил…
Но о_О интересный пример. Это ж жутко неэкономично. А если я 10^10 спрошу?

Test it on 50 and 75. See how it behaves on -1. Why? Can you think of a way to fix this?

Случайно осталось? :)

Такой код работает, хотя функция объявляется ниже того кода, который её использует. Это происходит оттого, что объявления функций не являются частью обычного исполнения программ сверху вниз. Они «перемещаются» наверх их области видимости и могут быть вызваны в любом коде в этой области. Иногда это удобно, потому что вы можете писать код в таком порядке, который выглядит наиболее осмысленно, не беспокоясь по поводу необходимости определять все функции выше того места, где они используются.

Это называют «всплытием», и уточню: такое происходит только при function name(...){...}, если мы делаем var name = function(...){...} — мы просто создаём переменную, содержащую функцию, а переменная не всплывает. А можно ещё и так: var func1 = function func2(){} — тогда func2 всплывёт, а func1 — нет.

P. S. Да, я вижу, что перевод ).
Спасибо за проделанный труд! Очень интересно и познавательно, особенно для начинающих изучать JavaScript.
Sign up to leave a comment.

Articles