[英]Order of execution for console statements for different browsers
到目前为止,我已经在Firefox(32)和Chrome(38)中测试了以下代码
var startTime = (new Date()).getTime();
console.log(startTime);
var data = [];
var tCat = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
var dataPoints = 2000000;
for ( var i = 0; i < dataPoints; i++ ) {
var r = Math.random;
data.push({
value: Math.pow(1 - Math.cos((r() * Math.PI) / 2), 3),
cost: +r().toFixed(2),
category: tCat[Math.floor(r() * tCat.length)]
});
}
var endTime = (new Date()).getTime();
console.log(endTime);
console.log(endTime - startTime);
您可以在此jsfiddle上查看
在Firefox中,似乎所有三个控制台语句在循环完成执行后同时启动,但在Chrome中,在循环开始执行之前显示了第一条控制台语句。 代码本身按预期工作,但是在Firefox中执行第一个控制台语句令人困惑。 谁能解释一下?
TL; DR:控制台不受任何标准的约束,并且取决于浏览器。
它按预期工作。 尝试添加断点并逐步执行代码中的每一行,您会看到它们按预期执行。 更粗略的方法是使用alert()
使脚本瘫痪。
但是,行为仍然取决于供应商。 没有保证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.