我正在尝试使用星号打印一个简单的阶梯图案。
for (i=0;i<7;i++) {
var asterisk = "*" + asterisk;
document.write(asterisk+"</br>");
}
使用此代码会返回所需的结果,但“未定义会在其旁边打印。
*undefined
**undefined
***undefined
****undefined
*****undefined
******undefined
*******undefined
为什么会这样?它似乎是由变量添加到自身引起的。我知道这可能是整数,虽然在使用字符串时有什么不同吗?感谢。
答案 0 :(得分:4)
在循环开始之前,asterisk
变量包含undefined
值。
在循环之前添加此语句:
var asterisk = '';
然后删除循环内的var
。它不会受伤,但你不需要它。并且不要忘记在var
循环变量上使用i
。 (感谢RobG提醒!)
所以你最终会得到:
var asterisk = '';
for( var i = 0; i < 7; i++ ) {
asterisk = "*" + asterisk;
document.write( asterisk + "</br>" );
}
答案 1 :(得分:1)
在循环外声明星号并将其设置为等于空字符串。您没有将星号设置为任何值,因此默认为未定义。这就是为什么你得到&#34; * undefined&#34;的增量。另外,也使用var关键字声明我。
var asterisk = '';
for (var i=0; i<7; i++) {
asterisk = "*" + asterisk;
document.write(asterisk+"</br>");
}