gpt4 book ai didi

javascript - "switch"语句只允许前 2 个 "case" block ——不管顺序 : Why?

转载 作者:行者123 更新时间:2023-11-30 17:38:48 25 4
gpt4 key购买 nike

我有一个简单的 Javascript switch 语句。我正在 Firefox 中调试它(使用 Firebug)。

Firebug 的 Javascript 调试器的一个好处是有效的 Javascript 行由绿色行号指示。

我遇到了一个很奇怪的问题。

我的 Javascript 代码仅对 switch 语句中的前两个 case block 有效。我附上截图来证明 case block 本身是有效的 因为当我将任何 case block 放在前两个位置中的任何一个时,它们运行成功。

这是 case block 的顺序 #1:

Order #1 of <code>case</code> blocks

特别是,请注意绿线数字在第三个 block 的开头停止。这不仅仅是一个视觉问题;当我使用调试器并到达第三个 block 时,Javascript 死了。当到达前两个 case block 时,代码成功运行。

这是 case block 的顺序 #2 - 除了 block 的顺序外完全相同:

Order #2 of <code>case</code> blocks

请注意,唯一的区别是 case block 的顺序。 这次,前两个 case block 成功执行(当达到) - 包括第一个屏幕截图中失败的 case block 。但是当到达第三个 case block 时,Javascript 死亡(即使它在第一个屏幕截图中显示的位置时成功)。

这是 case block 的顺序 #3 - 但你明白了:

Order #3 of <code>case</code> blocks

在这种情况下也是如此。第三个 case block 导致 Javascript 终止,只是因为它不在前两个位置之一

尽管我很想质疑我的理智,但必须有一个解释。帮助!

最佳答案

发生这种情况的通常原因是无法打印的字符已设法滑入源代码。十几个 Unicode 类空格字符之一,等等。通常当这个问题在 SO 上被问到时,这就是最终找到的答案。 (也就是说,问题通常表现为代码根本 不起作用,而不是您所描述的那样。)

如果您删除开关的所有文本然后(抱歉)从头开始重新输入,我想您会解决问题。或者,如果您可以访问 vivim,它们可以很好地突出显示不寻常的字符。

关于javascript - "switch"语句只允许前 2 个 "case" block ——不管顺序 : Why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21481430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com