最近我遇到了未被捕获的语法错误,我对如何有效地调试它们没有任何线索。我正在使用Chrome,当看不到未捕获的语法错误时,我无法看到发生了什么,因为Chrome的调试似乎只调试您自己编写的代码,而不是正在进行的代码,据我所知调试(无论如何都是初学者)。
所以我在这里得到了这段代码:http://jsfiddle.net/0e5ue9k7/2/
当我致电
时,问题是意外的'}'function userTurn(attack) {
....
}
在第283行,由
调用function combat {
....
}
按下按钮后,在第259行。我知道问题是按钮onclick事件,但我不确定是什么问题,发生了什么以及我应该如何更改它,因为语法错误未被捕获。处理这个问题的最佳方法是什么?
任何帮助都将非常感谢!如果有任何不清楚的地方,请告诉我。
答案 0 :(得分:0)
在Chrome中,您可以调试"未捕获的异常"通过单击调试器中的(||)图标。如果要对捕获的异常进行调试,请检查"暂停捕获"选项。
答案 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\')"> ...
进入不使用内联事件处理程序的做法。