Javascript 在 Chrome Inspector 中调试:变量在手表和控制台中显示为未定义,但悬停时可以检查
Javascript debugging in Chrome Inspector: variables are shown undefined in watches and console but can be inspected when hovered
在 Chrome 检查器中调试 AngularJS 时,我经常遇到这样的情况,当我知道一些变量已定义时,我可以通过将鼠标悬停在 Chrome 中检查它们检查员。它们也出现在 'locals' 选项卡中。但是,当我尝试将它们添加到监视选项卡或通过键入变量名称在控制台中评估它们时,我得到 "undefined"。见图片(注意变量'xhr')。
谁能解释为什么有时变量在监视选项卡和控制台中显示为未定义,而实际上它们在当前范围内并未未定义?而且,如果可能的话,如何使 watch window 和 console 始终正确显示变量的值?
见图片(注意变量'xhr')。
谢谢
源映射变量不会在调试器中显示已解析的名称,因为此功能尚未实现。有趣的是地图文件确实包含一个 names
数组,其中包含原始名称。但是,浏览器尚未使用此功能。 Canary 中有一项实验性功能,但似乎不再存在。
您可以关注 display source map variable names in Developer Tools 话题。
与此同时,我建议切换到库的 un-minified 版本来调试您的特定问题,但在生产中将其关闭。我知道不理想。
在 Chrome 检查器中调试 AngularJS 时,我经常遇到这样的情况,当我知道一些变量已定义时,我可以通过将鼠标悬停在 Chrome 中检查它们检查员。它们也出现在 'locals' 选项卡中。但是,当我尝试将它们添加到监视选项卡或通过键入变量名称在控制台中评估它们时,我得到 "undefined"。见图片(注意变量'xhr')。
谁能解释为什么有时变量在监视选项卡和控制台中显示为未定义,而实际上它们在当前范围内并未未定义?而且,如果可能的话,如何使 watch window 和 console 始终正确显示变量的值?
见图片(注意变量'xhr')。
源映射变量不会在调试器中显示已解析的名称,因为此功能尚未实现。有趣的是地图文件确实包含一个 names
数组,其中包含原始名称。但是,浏览器尚未使用此功能。 Canary 中有一项实验性功能,但似乎不再存在。
您可以关注 display source map variable names in Developer Tools 话题。
与此同时,我建议切换到库的 un-minified 版本来调试您的特定问题,但在生产中将其关闭。我知道不理想。