Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript如何处理alert与console.log及其在回调函数中的执行顺序_Javascript_Callback_Alert_Execution_Console.log - Fatal编程技术网

JavaScript如何处理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

有人能解释一下下面的代码执行是如何工作的吗?我创建了两个涉及回调函数的场景,一个在回调中使用console.log,另一个使用alert,我想知道是什么导致了这两个函数在执行上的差异

在第一个示例中,我在回调函数中使用console.log()。见下文

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);