我正在编写一个函数,在不使用指数运算符的情况下将值提升到另一个值。我理解这些循环的语法是初始值在第一个分号之前,第一个和第二个分号之间,第二个分号之后是循环操作。
我很困惑,因为我认为这段代码应该被破坏,但它似乎返回正确的值。当我将result *=
基于count++
放在括号内时,代码不会返回正确的值。这是为什么?
//Power function
function power(base, exponent) {
var result = 1
var count = 0
for (; count < exponent; count++)
result *= base
return result;
}
print(power(5, 2));
&#13;
答案 0 :(得分:1)
在这种情况下,空白;
只是一个占位符。因为您在此count = 0
循环之上声明了for
,所以此;
就在那里,因此声明不会被覆盖:
var count = 0;
for(/*var count=0*/; count < 4; count++){
document.write(count);
}
P.S。我评论了var count = 0
,因为这基本上是代码所代表的内容(因为你之前已经调用过)。
答案 1 :(得分:1)
可以在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