Ответьте на три вопроса по JavaScript. Если какой-то из них вас затруднит, вам следует прочесть отличную бесплатную книгу Тревора Бернхема (Trevor Burnham) — Async JavaScript. Всего 90 страниц, но здесь разобраны такие темы, как событийный цикл JavaScript, синхронность/асинхронность, однопоточность/многопоточность (воркеры), promises, fibers и еще много чего интересного.
Итак, что выдаст следующий код?
for (var i = 1; i <= 3; i++) {
setTimeout(function(){ console.log(i); }, 0);
};
Ответ
4
4
4
4
4
Что выдаст данный код на страничке в браузере (хром, сафари), в node.js?
var obj = {};
console.log(obj);
obj.foo = 'bar';
Ответ
В браузере:
{foo:bar}
В node.js:
{}
Сколько (примерно) раз сработает setInterval(func, 0)
за секунду в браузере?
var fireCount = 0;
var start = new Date;
var timer = setInterval(function() {
if (new Date - start > 1000) {
clearInterval(timer);
console.log(fireCount);
return;
}
fireCount++;
}, 0);
Ответ
Около 200
Если интересно почему именно так — ответы есть в книге.
Автор: zag2art