javascript更改字符串案例速度

Tim*_*hle 8 javascript optimization

哪个更快?javascript中的toUpperCase()或toLowerCase()?

Cᴏʀ*_*ᴏʀʏ 14

以下是主要浏览器(几个月前)的一些测试结果.它得出的结论toLowerCase()更快,但对提供的原因没有任何见解.

编辑:

出于好奇,我已经离开并浏览了WebKit JavaScript源代码.在.toUpperCase().toLowerCase()原型方法除了一些调用相同.toASCIIUpper(),.toASCIILower()Unicode::toUpper()Unicode::toLower().进一步检查前两种方法,我发现该.toLowerCase()函数比.toUpperCase()函数稍微复杂一些.


.toASCIILower() 做一些简单的位移逻辑:

char toASCIILower(char c) { 
    return c | ((c >= 'A' && c <= 'Z') << 5); 
}
Run Code Online (Sandbox Code Playgroud)

.toASCIIUpper() 有点多涉及:

char toASCIIUpper(char c) { 
    return static_cast<char>(c & ~((c >= 'a' && c <= 'z') << 5)); 
}
Run Code Online (Sandbox Code Playgroud)

.toASCIIUpper()函数中的静态强制转换和额外的按位求反(〜),重复超过一百万次迭代,可能会导致其较差的性能.

现在,这都是推测性的; 我没有做过真正的测试,也没有尝试完全理解这些方法,但也许其他人可以详细说明.