[英]How do I debug javascript errors like this?
我是javascript的新手,並試圖弄清楚以下代碼為何不起作用:
let ws = new WebSocket("ws://echo.websocket.org/");
ws.onmessage = msg => console.log(msg);
let queue = [];
ws.onopen = () => {
queue.forEach(msg => ws.send(msg));
};
const send = () => {
if(ws.readyState === ws.OPEN){
ws.send(msg);
}
else{
queue.push(msg);
}
};
send("foo");
send("bar");
然后我意識到自己需要: let send = (msg) => {
。
在發現問題之前,我曾使用過lint和dev工具,但看不到任何警告。 我應該怎么做才能發現那里的問題?
eslint。 甚至還有一個特定的規則: http : //eslint.org/docs/rules/no-undef
您可能應該得到一個ReferenceError,因為let / const表示嚴格的語法,盡管如果您錯過了我以為您的引擎由於某種原因而沒有采用嚴格模式的情況。 無論如何,使用靜態分析來查找是一個更好的錯誤,因為即使從未調用該函數,它也會拾取錯誤。
我建議您嘗試一下TypeScript。 在TypeScript操場上查看您的示例。
它會立即告訴您:在send
函數中Cannot find name msg
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.