0

我在下面有这段代码:

<html>

<head>
    <title> Eloquent Javascript Ex 2 </title>

<script language = "javascript">

    /*
    function twoPowerTen()
    {
        var result = 1;
        var counter = 0;

        while( counter < 10 )
        {
            result = 2 * result;
            document.writeln( result );
            counter = counter + 1;
        }
    }   

    int limit = 1;

    for( int y = 0; y < 5; y++ )
    {
        for( int x = 0; x < limit; x++ )
        {
            System.out.print( "*" );
        }
        System.out.println();
        limit = limit + 1;
    }
    */

    function drawTriangle()
    {
        var limit = 1;

        for( var y = 0; y < 5; y++ )
        {
            for( var x = 0; x < limit; x++ )
            {
                document.write( "*" );
            }
            document.write( "<br>" );
            limit = limit + 1;
        }
    }

    function whileDrawTriangle()
    {
        var limit = 1;
        var x, y = 0;

        while( y < 5 )
        {
            while( x < limit )
            {
                document.write( "*" );
                x++;
            }
            limit = limit + 1;
            y++;
        }
    }

</script>

</head>

<body>
<input type = "button" value = "Draw # Triangle" onClick = "whileDrawTriangle()" />
</body>


</html>

当我按下按钮时,它似乎不想运行 - 它应该在屏幕上打印一个三角形的星号。顺便说一句,我知道 HTML 的构造不是很好,但关键是要实现基本的 javascript,因为我正在掌握它的基础知识。

有什么问题?

4

3 回答 3

2

drawTriangleMethod永远不会被调用,你可以添加一个按钮来调用它,或者改变你onClick来调用那个函数。至于您的whileDrawTriangle方法,您只是将y变量初始化为 0,而x仍然存在undefined,因此当涉及到循环时,它会通过testx < limit

如果你想同时初始化xy你需要明确地这样做

例如

 var x = 0, y= 0;

这是一个jsBin

于 2012-11-19T16:54:25.597 回答
1

如果您将代码更改为,onClick = "drawTriangle()"而不是onClick = "while DrawTriangle()"它可以正常工作。

jsFiddle 示例

于 2012-11-19T16:46:24.340 回答
1

您需要将变量 x 初始化为 0;

于 2012-11-19T16:46:50.687 回答