function pow(a, n) {
var b = a;
for (var i = 1; i < n; i++) {
b *= a;
}
return b;
}
alert(pow(2, 5));
Конечно с нулем, отрицательными и дробными степенями появляются дополнительные варианты, но это лишь вопрос реализации, проблемы здесь никакой не вижу.