【发布时间】:2016-01-02 22:09:07
【问题描述】:
我来自 C#,两者之间存在巨大差异
答:
var stringVal = "1";
switch (stringVal)
{
case "0" :
break;
case "1" :
break;
}
和
乙:
var intVal = 1;
switch (intVal)
{
case 0 :
break;
case 1 :
break;
}
B 在 C# 中要快得多(因为 String-Switch 将从编译器转换为 if-else-structure)。
在 JavaScript 中是否类似? (当然 JS 中只有数字类型)
并且-为了可读性-如果我想在 JS 中使用一些枚举-“等效”(如此处所述http://stijndewitt.com/2014/01/26/enums-in-javascript/),使用时是否有性能改进
var caseEnum = {
firstCase : 0,
secCase : 1
}
var enumVal = caseEnum.secCase ;
switch (enumVal )
{
case caseEnum.firstCase :
break;
case caseEnum.secCase :
break;
}
?
(我知道我可以使用对象字面量来做到这一点,但是整数的 switch 语句对我来说更自然)
【问题讨论】:
-
"在 JavaScript 中是否类似?"取决于解释器的实现。
-
使用整数可能更快,但 JIT 是一个神秘的东西。如有疑问,请提供个人资料。
标签: javascript performance enums integer switch-statement