增加一个字符串本身返回undefined

时间:2014-05-21 02:49:32

标签: javascript string undefined

我正在尝试使用星号打印一个简单的阶梯图案。

for (i=0;i<7;i++) {
    var asterisk = "*" + asterisk;
    document.write(asterisk+"</br>");
}

使用此代码会返回所需的结果,但“未定义会在其旁边打印。

*undefined
**undefined
***undefined
****undefined
*****undefined
******undefined
*******undefined

为什么会这样?它似乎是由变量添加到自身引起的。我知道这可能是整数,虽然在使用字符串时有什么不同吗?感谢。

2 个答案:

答案 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>");
}