我正在编写一个函数,在不使用指数运算符的情况下将值提升为另一个值。我理解这些循环的语法是初始值在第一个分号之前,一个条件在第一个和第二个分号之间,第二个分号之后是循环操作。
我很困惑,因为我认为这段代码应该被破坏,但它似乎返回正确的值。当我在result *=
括号内放置count++
base时,代码不会返回正确的值。为什么是这样?
//Power function
function power(base, exponent) {
var result = 1
var count = 0
for (; count < exponent; count++)
result *= base
return result;
}
print(power(5, 2));
在这种情况下,空白;
只是一个占位符。因为你在这个count = 0
循环之上声明了for
,所以这个;
就在那里,所以声明不会被覆盖:
var count = 0;
for(/*var count=0*/; count < 4; count++){
document.write(count);
}
附:我评论了var count = 0
,因为这基本上是代码所代表的(因为你之前称之为)。
可以在javascript中执行您想要的操作。我认为唯一的问题是你没有使用括号。这会奏效。
//Power function
function power(base, exponent){
var result = 1;
var count = 0;
for (; count < exponent; count++, result *= base) {}
return result;
}
document.write(power(5, 2));
//returns 25
但这不会因为即使你没有缩进返回,它也会在for循环中执行并在第一次迭代期间返回。当我尝试你的代码snipplet时,我遇到了这个问题,所以我认为这是你的问题:
//Power function
function power(base, exponent){
var result = 1;
var count = 0;
for (; count < exponent; count++, result *= base) //notice the missing brackets
return result;
}
document.write(power(5, 2));
//returns 25