如果我在chrome或firefox上直接将下面的代码运行到控制台中,在第一个日志中,value2的值在内联表示中是0,但是如果我展开表示检查整个对象,它显示为17。这是一个多浏览器的bug还是我在这里遗漏了javascript的一些东西?我在这里提出这个问题的原因是,这种行为发生在不同的浏览器上,这使我认为语言或函数中存在某种我没有意识到的漏洞。
实际代码:
action = new Object();
action.value1 = 17;
action.value2 = 0;
console.log(action);
action.value2 = action.value1;
console.log(action);
在MacOS Catalina和两种浏览器的最新版本上进行了测试。
编辑--------------
问题是第一个console.log打印的value2为0,但当我展开对象细节时,它显示为17。我附上一张印刷品来澄清这个问题。
控制台结果的打印
即使在展开视图的情况下,第一个输出的value2的结果也是0。
console.log
在chrome、firefox、nodejs和其他javascript引擎之间具有不同的内部工作方式。
在你的屏幕截图中,浏览器做了两件事:
操作
对象操作
对象短预览是调用console.log
时对象的可读版本快照
可消耗引用仅在调用console.log
时打印展开图标。当展开时,chrome将获取该可消耗引用所引用的对象的当前值并打印它。当调用console.log
时,它不打印值
由于调用console.log
时的值({value1:17,value2:0}
)和当前值({value1:17,value2:17}
)不同,因此打印的内容不同。
我在SpringBoot api上工作,并使用具有以下属性设置的H2数据库。 当我想使用浏览器通过'http://localhost:8082/h2-console'查看H2数据库控制台时,浏览器中打开了一个带有连接和测试连接按钮的屏幕。当我单击Test Connection时,它返回成功,但当单击Connect按钮时,出现错误,即localhost拒绝连接。
是否可以从Linux终端访问开发者工具(Chrome/Firefox)控制台以进行脚本编写? 我试图从我的浏览器访问AngularJS应用程序的变量,这样我就可以快速浏览文件。例如,我可以要求,及其相关的,等;一旦我找到结果,我会在编辑器中打开该文件。 我正在探索的其他选择是使用某种无头浏览器。另外还有一个开发工具协议,它被木偶师等工具用来编程访问Chrome开发工具。 一个简单的节点REPL就足
如何禁止console为网站的所有浏览器运行任何脚本?
问题内容: 为了进行快速验证,我在开发过程中已在浏览器控制台中测试了AngularJS服务。我注入到服务控制台的方法是在为说明这个问题,或 这与AngularJS 1.0.7完美配合。但是,升级到1.1.5之后,对于使用service的服务将不再起作用,不会发送xhr。 我已经测试过直接注射,它也不起作用。AngularJS changelog似乎没有关于此问题的记录。我可以知道这是什么问题吗?
问题内容: 是否可以从控制台(Chrome开发者工具控制台)调用AngularJS控制器功能? 例如 问题答案: 是的,您只需要使用即可获取位于控制器范围内的元素:
在我的浏览器控制台中获取警告: