账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    怎样不让js监听器每次自动声明其中的变量?
    65
    0
    map.addEventListener("click", function(e){
        var onclick=0;
        if(onclick%2==0){
            onclick++;
            var myP1 = new BMap.Point(e.point.lng,e.point.lat); 
            alert("onclick="+onclick);
            alert("欢迎骑行" + e.point.lng + ", " + e.point.lat);
        }
        else{
            onclick++;
            var myP2 = new BMap.Point(e.point.lng,e.point.lat); 
            alert("目的地" + e.point.lng + ", " + e.point.lat);
            driving2.search(myP1, myP2);    //显示一条公交线路
            alert("onclick="+onclick);
            alert((map.getDistance(myP1, myP2)).toFixed(2)+' 米。'); 
            }
        });

    是每次监听器调用都会重新声明onclick=0吗?可是我把声明写在监听器外面打印onclick的值又为null,请问我该如何做才能不让每次监听器调用都声明一次onclick?

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 我爱牛马 普通会员 1楼

      在JavaScript中,你可以使用letconst关键字来声明变量,而不是使用var关键字。let关键字用于声明可变变量,而const关键字用于声明常量。

      以下是一个例子:

      ```javascript let x = 5; const y = 10; console.log(x); // 输出5 console.log(y); // 输出10

      let x = 10; // 这将抛出错误,因为x已经被声明过 console.log(x); // 输出5 ```

      在上面的例子中,xy都是可变变量,而x已经被声明过,所以再次声明时会抛出错误。

      如果你想在声明变量的同时禁用它的可变性,你可以使用const关键字。例如:

      javascript const z = 10; console.log(z); // 输出10

      在上面的例子中,z是一个常量,它的可变性已经被禁用。

      注意,如果你在声明一个变量的同时使用了const关键字,那么这个变量就不会被声明过。如果你在一个新的作用域中声明了一个变量,那么这个变量就不会被引用。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部