在javascript中切换意外标记

在javascript中切换意外标记,javascript,switch-statement,Javascript,Switch Statement,我在下面的代码中发现了一个意外的标记 switch ( hobby ) { case =" painting ": message = "Van Gogh was good at that."; break; case =" drawing ": message = "Hey! Van Gogh did that too.";

我在下面的代码中发现了一个意外的标记

        switch ( hobby ) {
            case =" painting ":
                message = "Van Gogh was good at that.";
                    break;
            case =" drawing ":
                message = "Hey! Van Gogh did that too.";
                    break;
            case =" playing guitar ":
                message = "Bob Dylan played guitar.";
                    break;
            case =" sleeping in ":
                message = "My favorite hobby in the winter.";
                    break;

            default
        }

有人看到我遗漏了什么吗?

您的语法不正确。在案例之后移除=。此外,您还需要在默认值之后加一个:


有关switch语句的更多信息,请参阅。

您的语法已关闭。在案例之后移除=。此外,您还需要在默认值之后加一个:


有关switch语句的更多信息,请参阅。

您可以利用函数语义,避免在每种情况下中断:

不过,表达这种逻辑的最佳方式可能如下:

var messages = {
  'painting':       'Van Gogh was good at that.',
  'drawing':        'Hey! Van Gogh did that too.',
  'playing guitar': 'Bob Dylan played guitar.',
  'sleeping in':    'My favorite hobby in the winter.'
}
var message = messages[hobby]

您可以利用函数语义来避免打破每种情况:

不过,表达这种逻辑的最佳方式可能如下:

var messages = {
  'painting':       'Van Gogh was good at that.',
  'drawing':        'Hey! Van Gogh did that too.',
  'playing guitar': 'Bob Dylan played guitar.',
  'sleeping in':    'My favorite hobby in the winter.'
}
var message = messages[hobby]

在切换前的代码中,我有var hobby=prompt您喜欢做什么?绘画、画画、弹吉他或睡懒觉。;结尾的默认行实际上不在“我的当前代码”中,它不是您缺少的内容,而是您正在添加的内容;一般来说,你会希望有一个默认的处理程序,除非它真的不重要,否则有一个空的带有注释的处理程序会对未来的代码读者有所帮助。请注意,当我忘记在代码中的一个关键字后面加上一个:在切换之前我有var hobby=prompt你喜欢做什么?绘画、画画、弹吉他或睡懒觉。;结尾的默认行实际上不在“我的当前代码”中,它不是您缺少的内容,而是您正在添加的内容;一般来说,你会希望有一个默认的处理程序,除非它真的不重要,否则有一个带有注释的空处理程序对未来的代码读者来说是有帮助的。请注意,当我忘记在一个关键字后面添加:所以,你可能想从大小写操作数中删除空格,即。,将绘画改为绘画,因为用户不太可能在答案前后放置空格。我将此添加为注释,而不是我答案的一部分,因为它与您的问题没有直接关联。此外,您可能希望删除大小写操作数中的空格,即,将绘制更改为绘制,因为用户不太可能在其答案之前和之后放置空格。我将此添加为注释,而不是我答案的一部分,因为它与您的问题没有直接关联;和一个默认值:return;案例