js实现次方
使用Math.pow()方法
JavaScript内置的Math.pow()方法可以直接计算次方。该方法接受两个参数:底数和指数,返回底数的指数次幂。
let result = Math.pow(2, 3); // 计算2的3次方,结果为8
console.log(result); // 输出: 8
使用指数运算符()
ES6引入了指数运算符,语法更简洁,功能与Math.pow()相同。

let result = 2 3; // 计算2的3次方,结果为8
console.log(result); // 输出: 8
自定义递归函数
可以通过递归实现次方计算,适用于需要理解算法原理的场景。
function power(base, exponent) {
if (exponent === 0) return 1;
return base * power(base, exponent - 1);
}
let result = power(2, 3); // 计算2的3次方,结果为8
console.log(result); // 输出: 8
自定义迭代函数
使用循环迭代的方式实现次方计算,避免递归可能导致的栈溢出问题。

function power(base, exponent) {
let result = 1;
for (let i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
let result = power(2, 3); // 计算2的3次方,结果为8
console.log(result); // 输出: 8
处理负指数
若需要支持负指数,可以通过计算倒数实现。
function power(base, exponent) {
if (exponent < 0) {
return 1 / power(base, -exponent);
}
let result = 1;
for (let i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
let result = power(2, -3); // 计算2的-3次方,结果为0.125
console.log(result); // 输出: 0.125
性能优化(快速幂算法)
对于大指数计算,快速幂算法(二分法)能显著提升性能,时间复杂度为O(log n)。
function power(base, exponent) {
if (exponent < 0) {
return 1 / power(base, -exponent);
}
if (exponent === 0) return 1;
if (exponent % 2 === 0) {
let half = power(base, exponent / 2);
return half * half;
} else {
return base * power(base, exponent - 1);
}
}
let result = power(2, 10); // 计算2的10次方,结果为1024
console.log(result); // 输出: 1024






