JSFiddle - React, Tailwind, and code Playground
HTML
<div id="info"></div>
JavaScript
var s = 'fdlfdskkjhflkdsjlkjfdaiauoeinafpodndpoifnspdofposaiptoaipojpodfmpoampofmdpofampodsajfpgojdsapogmapomgpoamgpoamgpodmagpoajoigudsalijsltnmaigvshvin;LVNV;LINFPNDS;LKNFIDSANGLASDNGFLDSNLNSlknfldnlgnlgnfdglisndlgndslifg';
function test1(s) {
var x = 0;
for (var i = 0; i < 100000; i++) {
for (var p = 0; p < s.length; p++) {
if (s[p] === 'l') x++;
}
}
return x;
}
function test2(s) {
var x = 0;
for (var i = 0; i < 100000; i++) {
for (var p = 0; p < s.length; p++) {
if (s.charAt(p) === 'l') x++;
}
}
return x;
}
function log() {
var s = [];
for (var i = 0; i < arguments.length; i++) {
s.push(arguments[i] ? JSON.stringify(arguments[i]) : arguments[i]);
}
document.getElementById('info').innerHTML += '<br/>' + s.join(', ');
}
function time(name, func) {
var start = +new Date();
func();
var end = +new Date();
log(name + ':' + (end - start));
}
time('indexer', function() {
console.log(test1(s));
});
time('charAt', function() {
console.log(test2(s));
});
String.prototype.test1 = function() {
test1(this);
}
String.prototype.test2 = function() {
test2(this);
}
time('indexer boxed', function() {
console.log(s.test1());
});
time('charAt boxed', function() {
console.log(s.test2());
});