全局变量设置后未定义

global variable undefined after setting it

本文关键字:未定义 设置 全局变量      更新时间:2023-09-26

我试着运行这段代码但它说a变量是undefined尽管你可以看到我已经非常清楚地定义了它并且它必须是一个全局变量因为它在每次循环后都会改变

var a = 1;
var b = 2;
window.setInterval(function(){
    alert(a);
    if(a == 1){
        document.getElementById('pic2').style.opacity = '1';
        document.getElementById('pic1').style.opacity = '0';
        var b = 1;
        var a = 2;
    }
    if(a == 2){
        document.getElementById('pic2').style.opacity = '0';
        document.getElementById('pic1').style.opacity = '1';
        var b = 2;
        var a = 1;
    }
}, 2000);

这是因为您正在重新声明变量。从setInterval函数中移除变量可以修复这个问题。

var a = 1;
var b = 2;
window.setInterval(function(){
    alert(a);
    if(a == 1){
        document.getElementById('pic2').style.opacity = '1';
        document.getElementById('pic1').style.opacity = '0';
        b = 1;
        a = 2;
    }
    if(a == 2){
        document.getElementById('pic2').style.opacity = '0';
        document.getElementById('pic1').style.opacity = '1';
        b = 2;
        a = 1;
    }
}, 2000);