我查看了一些关于JavaScript报告意外令牌但没有提供有用的行号的问题(localhost / index.html的第1行是“<!DOCTYPE html> ”):
Uncaught SyntaxError: Unexpected token u localhost:/1
现在我已经看到了一些“Uncaught SyntaxError”帖子,但是我想退后一个元级别,不仅要问我当前代码有什么问题(React JSX在http://pastebin.com/P3Epzi0q并且http://pastebin.com/0abjnmZz上的HTML并不是特别有趣,但是如何最好地确定在处理“未捕获的SyntaxError”时应该做什么,其中仅包含关于罪魁祸首的不相关归因。
除了使用断点和单步执行之外,我目前的尝试是深入研究我的代码中发生的位置。我正在加载外部源代码,包括Showdown,jQuery和ReactJS,但是我的代码中的两个console.log()语句之间发生了崩溃:
console.log("Reached 10");
React.render(<Pragmatometer />,
document.getElementById('main'));
console.log("Reached 11");
这仍然是一个非常大的领域,我正在深入研究,看看最后一个地方我可以放置一个在崩溃前发生的console.log()语句,我可以放置的最早的地方是什么一个没有发生的console.log()语句,只是崩溃。
除了Chrome调试器可能更精致(或者答案是什么?),问题的最佳方法是什么?有没有提供更有用的诊断信息,特别是故障的行号?
也许这个问题属于programmers.stackexchange.com,但似乎有关于未被捕获的SyntaxErrors的重复问题,并且响应已经确定了代码片段中的错误但是没有(据我所见)解释了如何精确定位没有有用的行号时会出错。
我现在模糊地使用二元搜索的方法来记录最佳路线吗?还有更好的东西吗?
谢谢,
答案 0 :(得分:0)
面包屑评论:我花了一个小时使用调试器,部分是因为我没有意识到在抛出错误后踩踏会继续向前移动。
在这种情况下,我正在处理糟糕或过时的信息,即如果没有保存,localStorage [foo]将返回null;它返回undefined,它传递了我的非null检查,并且JSON.parse()在输入字符串“undefined”时抛出异常。