什么是调试未捕获的语法错误的有效方法?

时间:2014-10-09 12:33:23

标签: javascript debugging syntax-error

最近我遇到了未被捕获的语法错误,我对如何有效地调试它们没有任何线索。我正在使用Chrome,当看不到未捕获的语法错误时,我无法看到发生了什么,因为Chrome的调试似乎只调试您自己编写的代码,而不是正在进行的代码,据我所知调试(无论如何都是初学者)。

所以我在这里得到了这段代码:http://jsfiddle.net/0e5ue9k7/2/

当我致电

时,问题是意外的'}'
function userTurn(attack) {
....
}

在第283行,由

调用
function combat {
....
}
按下按钮后,在第259行

。我知道问题是按钮onclick事件,但我不确定是什么问题,发生了什么以及我应该如何更改它,因为语法错误未被捕获。处理这个问题的最佳方法是什么?

任何帮助都将非常感谢!如果有任何不清楚的地方,请告诉我。

2 个答案:

答案 0 :(得分:0)

在Chrome中,您可以调试"未捕获的异常"通过单击调试器中的(||)图标。如果要对捕获的异常进行调试,请检查"暂停捕获"选项。

https://i.imgur.com/WB4GDSr.png

答案 1 :(得分:0)

您无法在JavaScript代码中找到丢失的“}”,因为错误位于您生成的HTML代码中,而您的程序会吐出错误。

<button class="combatMoves" onclick="userTurn(" help")"="">Help</button>

查看您的代码

<button class="combatMoves" onclick="userTurn("help")"="">Help</button>

什么时候应该

<button class="combatMoves" onclick="userTurn('help')"="">Help</button>

但是,由于您使用'构建了字符串,因此'字符需要转义\'

通常当浏览器在您点击某些内容时抛出错误且无法找到行号时,请点击您点击的元素。

基本修正:

controller.innerHTML = 'Choose an attack!<br><button class="combatMoves" onclick="userTurn(\'bow\')"> ...

进入不使用内联事件处理程序的做法。