renovations

This commit is contained in:
Ilya Kantor 2015-01-14 10:23:45 +03:00
parent c7d4c7e3ff
commit e1948130f6
170 changed files with 1496 additions and 1161 deletions

View file

@ -0,0 +1,44 @@
# Что выведет после setInterval?
[importance 5]
В коде ниже запускается `setInterval` каждые 10мс, и через 50мс запланирована его отмена.
После этого запущена тяжёлая функция `f`, выполнение которой (мы точно знаем) потребует более 100мс.
Сработает ли `setInterval`, как и когда?
Варианты:
<ol>
<li>Да, несколько раз, *в процессе* выполнения `f`.</li>
<li>Да, несколько раз, *сразу после* выполнения `f`.</li>
<li>Да, один раз, *сразу после* выполнения `f`.</li>
<li>Нет, не сработает.</li>
<li>Может быть по-разному, как повезёт.</li>
</ol>
Что выведет `alert` в строке `(*)`?
```js
var i;
var timer = setInterval(function() { // планируем setInterval каждые 10мс
i++;
}, 10);
setTimeout(function() { // через 50мс - отмена setInterval
clearInterval(timer);
*!*
alert(i); // (*)
*/!*
}, 50);
// и запускаем тяжёлую функцию
function f() {
// точное время выполнения не играет роли
// здесь оно заведомо больше 100мс
for(i=0; i<1e8; i++) f[i%2] = i;
}
f();
```