这段代码在Khan Academy html编辑器中抛出错误“Unexpected reserved word”。我很确定这是Khan Academy的编辑器的问题,而不是我的代码,但我如何修复它?
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
class Example {
constructor () {
}
}
</script>
</body>
</html>
字符串
1条答案
按热度按时间anauzrmj1#
Khan Academy的网页环境使用自定义版本的Slowparse在运行HTML代码之前对其进行lint。这个Slowparse反过来使用了一个近十年过时的Esprima版本来解析任何JavaScript代码。因此,该环境无法解析仅在ECMAScript 2015中引入的类。
您可以通过利用Khan识别的有效脚本类型属性的不完整集合来解决此限制。使用除no value(
<script>
)和text/javascript
之外的任何有效值将避免JavaScript代码的linting(和转换)。例如,在代码中使用
module
:字符串
这里需要注意的是,使用全局变量并不简单。例如,在代码中使用
application/javascript
媒体类型,由于第一次运行后的语法错误,将默默失败(错误仅记录到浏览器控制台)。这是因为Khan在运行之间没有正确清理环境。您有三种选择来处理此问题:var
关键字或no关键字来“声明”变量