为什么不运行?

时间:2012-11-19 16:40:46

标签: javascript

我的代码如下:

<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,因为我要掌握它的基础知识。

有什么问题?

3 个答案:

答案 0 :(得分:2)

您的drawTriangleMethod永远不会被调用,您只需添加一个按钮即可调用它,或者更改您的onClick以调用该功能。至于您的whileDrawTriangle方法,您只是将 y 变量初始化为0,而 x 仍然是undefined,因此当涉及到循环时它失败测试x < limit

如果你想初始化 x y ,你需要明确地这样做

例如

 var x = 0, y= 0;

这是jsBin

答案 1 :(得分:1)

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

<强> jsFiddle example

答案 2 :(得分:1)

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