在Chrome中直接在控制台中执行脚本时,我看到了:
有谁知道VM117:2的含义是什么
VM代表什么?
答案 0 :(得分:43)
它是短语Virtual Machine的缩写。 在Chrome JavaScript引擎(称为V8)中,每个脚本都有自己的脚本ID。
有时V8没有关于脚本文件名的信息,例如eval
的情况。因此,devtools使用与脚本ID连接的文本“VM”作为这些脚本的标题。
有些网站可能会通过XHR和eval
获取许多JavaScript代码。如果开发人员想要查看这些脚本的实际脚本名称,则可以使用sourceURL。 DevTools解析并将其用于标题,映射等。
答案 1 :(得分:1)
感谢@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 函数并调用它而不是 https://stackoverflow.com/a/64444083/1818089
中指出的 console.log// console.print: console.log without filename/line number
console.print = function (...args) {
queueMicrotask (console.log.bind (console, ...args));
}
注意上面提到的分组问题。