Тестовые задания по JavaScript. Замыкания

Все публикуемые тестовые задания — эксперимент по подготовке одного человека :-)

Замыкание — когда функции представляют собой комбинацию кода и области видимости, в которой этот код исполняется.
Все JavaScript функции являются замыканиями. Основной фан при экспорте вложенной функции за пределы области видимости, в которой она была определена.

Теоретическую информацию можно прочесть в блоге Дмитрия Сошникова о замыканиях в ECMA.

Разбор задач, а также вторая порция по этой теме, будут опубликованы в понедельник.

  1. Что окажется в консоли?
    var i;
    for(i=0; i<10; i++) {
        setTimeout(function(){console.log(i);}, 1000);
    }
  2. Каким будет результат?
    var x = "глобальная";
    function g_func() {
        var x = "локальная";
        function l_func() { alert(x); }
        return l_func;
    }
    func = g_func();
    func();
    Почему?
  3. Какое значение будет у arr[2](), arr[arr.length]()?
    function create(number) {
        var arr = [];
        for (var i=1; i<number; i++) {
            arr[i] = function() { alert(i*i) };
        }
        return arr;
    }
    var arr = create(100);


Tags:
This entry was posted on Friday, January 20th, 2012 at 10:00 pm and is filed under Задачи. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

Your comment