У меня есть вопрос javascript noob. Скажем, у нас есть две очень большие строки (~ миллион символов или более), которые равны - они имеют одинаковую длину и один и тот же контент. Пусть говорят, что у нас есть эти две функции, которые делают то же самое (сравнивают строки):
function equals1(a, b) {
return a === b;
}
function equals2(a, b) {
if (a.length !== b.length) {
return false;
}
for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
}
Почему первая функция (equals1()) почти в два раза быстрее, чем вторая? Как можно улучшить вторую, чтобы она выполнялась так же хорошо, как первая?