你好,我在一本书里读过这个,
case 表达式在运行时计算的事实使得 JavaScript switch 语句与 C、C++ 和 Java 的 switch 语句有很大不同(并且效率低于)。在那些语言中,case 表达式必须是相同类型的编译时常量,并且 switch 语句通常可以编译成高效的跳转表。
它指出 JS 的 switch 语句与 Java/C++ 不同,它的性能较低,并且知道这是因为它不像 Java/C++ 那样为 switch 语句实现跳转表。我想知道为什么 JS 没有实现 switch 语句的跳转表而 Java/C++ 做到了?这是因为 JS 是一种动态且弱的语言,还是因为它通常会被解释?如果那是因为它是一种解释性语言,那么 V8 引擎在编译 JS 时的情况如何。