关于我的javascript游戏中的警报功能 迷宫游戏 函数leftwards() { var元素=document.getElementById(“女孩”); element.style.left=parseInt(element.style.left)-10+'px'; } 函数向右() { var元素=document.getElementById(“女孩”); element.style.left=parseInt(element.style.left)+10+'px'; } 函数向上() { var元素=document.getElementById(“女孩”); element.style.top=parseInt(element.style.top)-10+'px'; } 函数向下() { var元素=document.getElementById(“女孩”); element.style.top=parseInt(element.style.top)+10+'px'; } 函数移动位置(事件) { 开关(event.keyCode) { 案例37: 向左(); 打破 案例39: 向右(); 打破 案例38: 向上(); 打破 案例40: 向下(); 打破 } }; 函数mazeLoop() { 如果((Math.pow)(Math.abs(top-590),2)+Math.pow(Math.abs(left-670),2)

关于我的javascript游戏中的警报功能 迷宫游戏 函数leftwards() { var元素=document.getElementById(“女孩”); element.style.left=parseInt(element.style.left)-10+'px'; } 函数向右() { var元素=document.getElementById(“女孩”); element.style.left=parseInt(element.style.left)+10+'px'; } 函数向上() { var元素=document.getElementById(“女孩”); element.style.top=parseInt(element.style.top)-10+'px'; } 函数向下() { var元素=document.getElementById(“女孩”); element.style.top=parseInt(element.style.top)+10+'px'; } 函数移动位置(事件) { 开关(event.keyCode) { 案例37: 向左(); 打破 案例39: 向右(); 打破 案例38: 向上(); 打破 案例40: 向下(); 打破 } }; 函数mazeLoop() { 如果((Math.pow)(Math.abs(top-590),2)+Math.pow(Math.abs(left-670),2),javascript,compiler-errors,Javascript,Compiler Errors,您没有在任何地方声明top或left。您没有看到top的这个错误的唯一原因是浏览器有一个名为top的内置全局变量(对顶级窗口的引用) 必须声明变量。在计算中使用变量之前,还必须为它们指定有意义的值 一般来说,避免使用全局语言。全局语言是一件坏事™. 例如,您不能将top用作全局变量,因为您不允许分配给它 要避免使用全局变量,请执行以下操作: 将代码包装在作用域结构中。目前,这意味着内联调用的函数表达式: <style> body{

您没有在任何地方声明
top
left
。您没有看到
top
的这个错误的唯一原因是浏览器有一个名为
top
的内置全局变量(对顶级窗口的引用)

必须声明变量。在计算中使用变量之前,还必须为它们指定有意义的值

一般来说,避免使用全局语言。全局语言是一件坏事™. 例如,您不能将
top
用作全局变量,因为您不允许分配给它

要避免使用全局变量,请执行以下操作:

  • 将代码包装在作用域结构中。目前,这意味着内联调用的函数表达式:

        <style>
                body{
                background-color: powderblue;
                font-size: 30px;}
    
                h1{
                color: #E1BEE7;
                font-size: 50px;
                text-align: center;
                font-family: Verdana;
                text-decoration: underline;}
    
                h2{
                color: #C0CA33;
                font-size: 35px;
                text-align: center;
                position: absolute;
                left: 8%;}
    
                .button {
                background-color: #C0CA33;
                color: white;
                padding: 8px 30px;
                text-align: center;
                display: inline-block;
                font-size: 30px;}
    
                .maze{
                position: absolute;
                width: 730px;
                top: 25%;
                left: 22%;}
    
                #girl{
                position: absolute;
                left: 620;
                right: 500;
                top: 140;
                bottom: auto;}
        </style>
    
    由于ES2015+的语义,最新的浏览器只允许您使用一个独立的块,但是很多浏览器仍然需要一个函数

  • 不要使用
    onxyz
    -属性样式的事件处理程序(例如,像您的
    onkeyup=“moveLocation(event)”
    ),因为它们要求调用的函数是全局函数,而全局函数是一件坏事™. 相反,请通过
    addEventListener
    和类似工具阅读现代事件处理(如果您必须支持IE8,请向您展示如何处理它不支持
    addEventListener


  • 如果你能通过控制台检查你的
    状态,那么
    top
    left
    的值是多少?top和left在你的脚本中不是全局声明的。添加一个观察值,在最终/生产代码中使用警报根本不是一个好做法。@VinodLouis好的,我正在和我的朋友一起检查这个问题!@sarijacobsunny ThANK也用于观察!不要试图改变全局
    top
    的含义!@JaromandaX好的,那么我需要设置变量就像left=any值,top=any值一样吗?
    function mazeLoop()
                {
                    if((Math.pow(Math.abs(top-590),2)+Math.pow(Math.abs(left-670),2)<=900))
                    {
                      alert("DONE!");
                    }
                    else
                    {
                      moveLocation();
                      setTimeout("mazeLoop()",10);
                    }
                }
    
        <style>
                body{
                background-color: powderblue;
                font-size: 30px;}
    
                h1{
                color: #E1BEE7;
                font-size: 50px;
                text-align: center;
                font-family: Verdana;
                text-decoration: underline;}
    
                h2{
                color: #C0CA33;
                font-size: 35px;
                text-align: center;
                position: absolute;
                left: 8%;}
    
                .button {
                background-color: #C0CA33;
                color: white;
                padding: 8px 30px;
                text-align: center;
                display: inline-block;
                font-size: 30px;}
    
                .maze{
                position: absolute;
                width: 730px;
                top: 25%;
                left: 22%;}
    
                #girl{
                position: absolute;
                left: 620;
                right: 500;
                top: 140;
                bottom: auto;}
        </style>
    
    (function() {
        // Your code here
    })();