function reverseStr(str) {
return Array.prototype.reduce.call(str, function(c1, c2) {return c2 + c1;});
}
alert(reverseStr('Привет мир!'));
похожим образом можно использовать reduceRight, map, every, some, forEach, и черт знает что еще
вот только скорость подводит у всех этих решений(раза в два-три)