直接在 Chrome 的控制台中执行脚本时,我看到了这个:
有谁知道VM117:2是什么意思
VM 代表什么?
它是“虚拟机”一词的缩写。 在 Chrome JavaScript 引擎(称为 V8)中,每个脚本都有自己的脚本 ID。
有时 V8 没有有关脚本文件名的信息,例如在
eval
的情况下。因此 devtools 使用文本“VM”与脚本 ID 连接作为这些脚本的标题。
某些网站可能会通过 XHR 获取许多 JavaScript 代码并
eval
。如果开发人员想要查看这些脚本的实际脚本名称,他们可以使用sourceURL。 DevTools 解析它并将其用于标题、映射等。
感谢@MRB,
我重新审视了这个问题,今天找到了解决方案, 感谢https://stackoverflow.com/a/63221101/1818089
queueMicrotask (console.log.bind (console, "Look! No source file info..."));
它将相似的元素分组,因此请确保为每个日志行添加唯一标识符,以便能够查看所有数据。
在以下示例中进行演示。
而不是
data = ["Apple","Mango","Grapes"];
for(i=0;i<10;i++){
queueMicrotask (console.log.bind (console, " info..."+i));
}
使用
data = ["Apple","Mango","Grapes"];
for(i=0;i<data.length;i++){
queueMicrotask (console.log.bind (console, " info..."+i));
}
更好的方法是创建一个console.print函数来执行此操作并调用它而不是console.log,如https://stackoverflow.com/a/64444083/1818089
中指出的// console.print: console.log without filename/line number
console.print = function (...args) {
queueMicrotask (console.log.bind (console, ...args));
}
注意上面提到的分组问题。