当我试图运行下面的代码时,在JS Bin中得到下面的错误代码,我做错了什么吗?
let myTodos = {
day: "Monday",
meetings: 0,
meetDone: 0,
}
let addMeeting = function(todo, meet = 0) {
todo.meetings = todo.meetings + meet;
}
let meetDone = function (todo, meet = 0) {
todo.meetDone = todo.meetDone - meet;
}
let resetDay = function (todo) {
todo.meetings = 0;
todo.meetDone = 0;
}
let getSummaryOfDay = function (todo) {
let meetleft = todo.meetings + todo.meetDone;
return `You have ${meetleft} meetings for today.!`;
}
addMeeting(myTodos, 4);
addMeeting(myTodos, 2);
meetDone(myTodos, 5);
console.log(getSummaryOfDay(myTodos));
console.log (myTodos);
我在JS Bin中得到的错误如下所示。
"error"
"SyntaxError: Unexpected token '{'
at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:13924
at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:10866"
2条答案
按热度按时间h9a6wy2h1#
这是JSBin循环保护中的一个漏洞。
使用此代码(JSBin link)时:
JSBin生成将执行的以下文档:
注意模板文本是如何 Package 在保护代码中的,现在它在语法上是不正确的。
据推测,保护机制是用来阻止无限循环的。
如果您只是删除
for
(JSBin link),则不会触发保护,生成的文档语法正确:您可以使用错误中建议的解决方案-在JavaScript区域的任何位置添加
// noprotect
注解将阻止触发循环保护。JSBin linkwpx232ag2#
在使用jsbin时从Firefox浏览器切换到Chrome为我修复了这个错误。
如果代码没有任何问题,它在两个浏览器中都运行良好。如果有任何问题,Firefox中的错误原因显示为有问题。Chrome中显示正确的原因。