javascript - 无法理解为什么 JS 代码不在 JS Bin 中运行
问题描述
当我尝试运行以下代码时,在 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"
解决方案
当您使用此代码时(JSBin 链接):
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);
JSBin 生成以下将被执行的文档:
<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\">
<meta name=\"viewport\" content=\"width=device-width\">
<title>JS Bin</title>
<style id=\"jsbin-css\">
</style>
</head>
<body>
<script>try {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;
{
if (window.runnerWindow.protect.prote{;window.runnerWindow.protect.protect({ line: 23, reset: true }); ct({ line: 23 })) break;
return `You have ${meetleft} meetings for today.!`;
}}
}
addMeeting(myTodos, 4);
addMeeting(myTodos, 2);
meetDone(myTodos, 5);
window.runnerWindow.proxyConsole.log(getSummaryOfDay(myTodos));
window.runnerWindow.proxyConsole.log (myTodos);
} catch (error) { throw error; }
//# sourceURL=xibavicide.js
</script>
</body>
</html>
请注意模板文字是如何包装在保护代码中的,现在它在语法上不正确。
据推测,保护是为了阻止无限循环。
如果您只是删除for
(JSBin 链接),那么您不会触发保护并且生成的文档在语法上是正确的:
<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\">
<meta name=\"viewport\" content=\"width=device-width\">
<title>JS Bin</title>
<style id=\"jsbin-css\">
</style>
</head>
<body>
<script>try {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 today.!`;
}
addMeeting(myTodos, 4);
addMeeting(myTodos, 2);
meetDone(myTodos, 5);
window.runnerWindow.proxyConsole.log(getSummaryOfDay(myTodos));
window.runnerWindow.proxyConsole.log (myTodos);
} catch (error) { throw error; }
//# sourceURL=roqosiyasa.js
</script>
</body>
</html>
您可以使用错误中建议的解决方法 -// noprotect
在 JavaScript 区域的任何位置添加注释将停止触发循环保护。JSBin 链接
推荐阅读
- python - 代码完成在 VS Code for OpenCV 中不起作用
- java - MongoDb比较同一集合中的两个字段,在java中
- c# - 如何在运行时更改检查器中的值?
- javascript - 更改 typeform iframe 高度
- blockchain - 如果我有交易哈希,则找出交易的验证器数量
- python - 如何使用 Python 3.7 下载多个文件
- php - PHP MySQLi 权限被拒绝,但从 MySQL CLI 工作
- angular - 在选项卡之间共享 http 请求调用
- dask - 工人无法用 rasterio 反序列化
- inform7 - 如何访问玩家刚刚输入的动词?