Есть 2 фрагмента, каждый из которых через 3 секунды выводит 
i (от 1 до 10). Но вот почему-то во втором (с 
alert) порядок нарушен.  
console.log выводит всё правильно (от 1 до 10.) Почему?
1. 
for (var i = 1; i <= 10; i++) {
		(function(e) {
			setTimeout(function() {
				console.log(e);
			}, 3000);
		})(i);
	}
2. 
for (var i = 1; i <= 10; i++) {
		(function(e) {
			setTimeout(function() {
				alert(e);
			}, 3000);
		})(i);
	}