JavaScript如何处理alert与console.log及其在回调函数中的执行顺序
有人能解释一下下面的代码执行是如何工作的吗?我创建了两个涉及回调函数的场景,一个在回调中使用console.log,另一个使用alert,我想知道是什么导致了这两个函数在执行上的差异 在第一个示例中,我在回调函数中使用console.log()。见下文JavaScript如何处理alert与console.log及其在回调函数中的执行顺序,javascript,callback,alert,execution,console.log,Javascript,Callback,Alert,Execution,Console.log,有人能解释一下下面的代码执行是如何工作的吗?我创建了两个涉及回调函数的场景,一个在回调中使用console.log,另一个使用alert,我想知道是什么导致了这两个函数在执行上的差异 在第一个示例中,我在回调函数中使用console.log()。见下文 var thor = function(){ console.log('I am THOR!'); }; var otherFunction = function(callback){ for (var i = 0; i < 11
var thor = function(){
console.log('I am THOR!');
};
var otherFunction = function(callback){
for (var i = 0; i < 11; i++){
console.log(i);
}
callback();
};
otherFunction(thor);
这是第二个例子。唯一改变的是'thor'函数中的'console.log'被替换为'alert'
var thor = function(){
alert('I am THOR!');
};
var otherFunction = function(callback){
for (var i = 0; i < 11; i++){
console.log(i);
}
callback();
};
otherFunction(thor);
var thor=function(){
警惕(“我是托尔!”);
};
var otherFunction=函数(回调){
对于(变量i=0;i<11;i++){
控制台日志(i);
}
回调();
};
其他功能(thor);
…结果是:
<alert>
0
1
9
10
8
7
6
5
4
3
2
0
1.
9
10
8.
7.
6.
5.
4.
3.
2.
for循环中的数字以随机顺序注销,并且在记录之前会弹出警报框。我想知道是什么导致了这种差异,为什么在回调中调用alert时,它会首先出现,而不是在for循环完成记录数字之后
谢谢你的帮助 当我在chrome中测试时,警报出现在最后,如果在回调中添加一个console.log,就会看到它出现在数字之后。执行的速度可能会产生误导,因为整个过程显然在不到一秒钟的时间内就结束了 小提琴:
var thor=function(){
console.log(“在回调中”);
警惕(“我是托尔!”);
};
var otherFunction=函数(回调){
对于(变量i=0;i<11;i++){
控制台日志(i);
}
回调();
};
其他功能(thor);
使用哪种浏览器?我无法在Firefox或Chrome中确认您的第二个代码片段中描述的行为。我的情况并非如此:-它们以正确的顺序发出,警报排在最后(应该是这样)。我在将代码粘贴到Javascript控制台时也是如此。您确定没有键入otherFunction(thor())
?这将导致警报首先出现,但仍然不会导致日志的随机顺序。啊,我使用的是jsbin.com…我现在看到,直接从控制台执行此操作会产生预期的结果。我以为我疯了。。。
<alert>
0
1
9
10
8
7
6
5
4
3
2
var thor = function(){
console.log("in callback");
alert('I am THOR!');
};
var otherFunction = function(callback){
for (var i = 0; i < 11; i++){
console.log(i);
}
callback();
};
otherFunction(thor);