【问题标题】:keep getting 'Unexpected '(space)' error?不断收到“意外的“(空格)”错误?
【发布时间】:2017-08-31 20:39:24
【问题描述】:

在 jsLint 中,我不断收到这 5 个错误:

'意外'(空间)'案例夏天。

'意外'(空间)'案例冬天。

'Unexpected '(space)' case fall.

'Unexpected '(space)' case fall.

'意外'(空格)'案例弹簧。

var season = prompt("what is your favourite  season");
switch (season) {
case "summer": 
alert("i love summer too");
break;
case "winter": 
alert("i love winter too ");
break;
case "spring": 
alert("i love Spring  too");
break;
case "fall": 
alert("i love Fall  too");
break;
case "autumn": 
alert("i love autumn  too");
break;

【问题讨论】:

  • 使用这种格式的代码很难解决 linting 错误。很可能在您的案例陈述周围有额外的空间somewhere,但我们无法知道除非代码显示在此处,因为它实际上在文件中。老实说,我会在您的“案例”陈述之后寻找额外的空格。
  • 欢迎来到 StackOverflow。请阅读Help center。在您的特定问题中,您可以使用代码格式更好地显示您的错误消息。此外,导致此错误的代码对您很有帮助。
  • 这只是一个代码格式化消息。如果您不想看到它们,请确保不要在不需要的地方放置额外的空白;或打开忽略空白混乱的选项

标签: javascript jslint


【解决方案1】:

这里发生的事情已经足够多,最好将您指向 JSLint 说明,以了解未来会发生什么。你可以在这里找到它们:http://jslint.com/help.html

但这是你的问题......

TL;DR:主要是抱怨您的 case 语句后面有尾随空格。

打开这个...

case "summer": // <<< there's a space after the colon

...进入这个...

case "summer":// <<<< now there's not!

更长:

您可以通过在文件顶部添加 JSLint Directive 来解决间距错误。这里你想要的是white:true,这表明你想要“容忍空白混乱”。

/*jslint: white:true */
var season = prompt("what is your favourite  season");
// ...

但是现在你要解决一大堆新问题...

  • 预期“开关”在函数中。
  • 未声明的“提示”。
  • 未声明的“警报”。

第一个很容易;你只需包装一个函数。

后两个存在是因为您没有告诉 JSLint 期望什么上下文,并且不确定 alertprompt 是否是有效调用。你可以告诉它alertprompt 是带有另一种指令global directive 的全局变量,但请记住...

强烈建议不要使用全局变量,但不幸的是,Web 浏览器需要使用它们。

所以要使用 globals 指令,您需要在我们之前添加的 jslint 注释中设置 browser 指令。

信不信由你,下面这个乱七八糟的东西,已经是 lints 了!试试JSLint.com

/*jslint white:true, browser:true */
/*global alert, prompt */

function seasonCheck() {
"use strict";
var season = prompt("what is your favourite  season");
switch (season) {
case "summer":
alert("i love summer too");
break;
case "winter":
alert("i love winter too ");
break;
case "spring":
alert("i love Spring  too");
break;
case "fall":
alert("i love Fall  too");
break;
case "autumn":
alert("i love autumn  too");
break;
}
}

promptalert 是特例。这些是您将在浏览器开发期间使用的功能。不要在全局指令中设置它们,而是像这样使用devel 指令......

我还要去掉 white:true 并清理这个东西以便它可读......请注意,没有尾随空格,并且我们将 case 语句与 @987654343 对齐@,一开始我觉得很奇怪。

/*jslint devel:true */

function seasonCheck() {
    "use strict";

    var season = prompt("what is your favourite season");

    switch (season) {
    case "summer":
        alert("i love summer too");
        break;

    case "winter":
        alert("i love winter too ");
        break;

    case "spring":
        alert("i love Spring  too");
        break;

    case "fall":
        alert("i love Fall  too");
        break;

    case "autumn":
        alert("i love autumn  too");
        break;
    }
}

现在我们有了 JSLint-happy、干净的空白代码。我可能会将alert 移到最后并为您的开关中的字符串分配值,但 JSLint 已经很高兴了。

希望对您有所帮助,并为您提供一些使用 JSLint 的快速入门。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2014-10-12
    • 2019-10-31
    • 1970-01-01
    相关资源
    最近更新 更多