首先:我有点进入JavaScript,但并不多。
今天我看到了这些代码:
if (stringToSearch[i].charCodeAt(0) === codeToSearch) {
String的charCodeAt()方法用于比较当前char和搜索到的char。
此处函数的完整代码:
function getOccurences (stringToSearch, charToSearch) {
var ret = 0;
var codeToSearch = 0;
var i;
stringToSearch = stringToSearch.toUpperCase();
codeToSearch = charToSearch.toUpperCase().charCodeAt(0);
for (i = 0; i < stringToSearch.length; i++) {
if (stringToSearch[i].charCodeAt(0) === codeToSearch) {
ret++;
}
}
return ret;
}
&#13;
我会直接比较这个字符。不使用charCodeAt()。
只是......
stringToSearch[i] === charToSeach
据我所知,计算机无论如何只比较数字。将字符转换为UTF代码。相互减去这些数字,然后检查结果是否为零。
因此我的问题是:
charCodeAt()的用法是否有意义?
在字符比较中支持直接charCode比较是否有好处。
答案 0 :(得分:2)
charCode
会受益
例如。如果我们在变量x中有charCode('a'),那么我们可以使用x ++增加它
但如果我们保存了“a”,那么我们就无法进行算术运算
因此,当您需要递增/递减字符时,将使用charCodeAt(number)
。
答案 1 :(得分:2)
我的直觉是当你经历类型转换和函数调用这样的箍时,会说 hit 。
也就是说,通过委托给本地字符串方法,您可能会从代码中获得更多性能,例如:
function countCaseInsensitiveOccurrences(haystack, char) {
haystack = haystack.toUpperCase();
char = char.toUpperCase()[0];
var count = 0, pos = -1;
while ((pos = haystack.indexOf(char, pos + 1)) !== -1) {
count++;
}
return count;
}