htmlEscape関数の速度比較
by ethertank
JavaScript
var htmlEscape1 = (function() {
var map = {
"<": "<",
">": ">",
"&": "&",
"'": "'",
'"': """
};
var replaceStr = function(s) {
return map[s];
};
return function(str) {
return str.replace(/<|>|&|'|"|\s/g, replaceStr);
};
})();
var htmlEscape2 = (function(map) {
var replaceStr = function(s) {
return map[s];
};
return function(str) {
return str.replace(/<|>|&|'|"|\s/g, replaceStr);
};
})({
"<": "<",
">": ">",
"&": "&",
"'": "'",
'"': """
});
var a = new Date();
for(var i = 0; i < 50000; i++) { htmlEscape1("<>&'\" "); }
console.log("1: ", ("<>&'\" "), new Date() - a);
var b = new Date();
for(var i = 0; i < 50000; i++) { htmlEscape2("<>&'\" "); }
console.log("2: ", ("<>&'\""), new Date() - b);