Javascript在两个不同版本中的行为不同

Javascript在两个不同版本中的行为不同,javascript,jquery,Javascript,Jquery,让我先显示代码,然后尝试解释问题 function toggleButton(filter, button) { var buttonOn = false; if ( button.value === "ON" ) { buttonOn = true; } if ( buttonOn ) { button.value = "OFF"; button.className = "btn_tgl btn_tgl_off";

让我先显示代码,然后尝试解释问题

function toggleButton(filter, button) {
    var buttonOn = false;

    if ( button.value === "ON" ) {
    buttonOn = true;
    }


    if ( buttonOn ) {
        button.value = "OFF";
        button.className = "btn_tgl btn_tgl_off";
    } 
    else {
        button.value = "ON";
        button.className = "btn_tgl btn_tgl_on";
    }

    checkItem();
}

function checkItem(alreadyGotStuff) {
    if(!alreadyGotStuff){
        do this
    }
    else{
        do that
    }
}
所以问题是这个。在使用此脚本的程序的主干和生产版本中,当toggleButton运行并
checkItem()时
alreadygottuff
未定义的
。这是正确的,因为我需要它是未定义的,所以第一个
if
语句将成功,它将
执行此操作。脚本中还有其他函数将调用
checkItem(true)
,因此该函数将
执行该操作
。在我的开发分支中,当调用是
checkItem()时,该值始终为真。无论我使用什么浏览器,脚本都完全相同。为什么它在一个版本中传递
未定义的
,而在另一个版本中保持
true


谢谢

checkItem()
将始终传递
未定义的
作为第一个参数。和
!未定义的
将始终为
。因此,还有一些事情正在发生。您已经在问题的标记中指定了jQuery,但您的代码不包含任何jQuery。事实上,这种切换是jQuery非常容易实现的(使用它的
.toggle()
函数),因此如果您使用jQuery,应该对此进行研究。请参阅相关的jquery手册页面:我将其标记在jquery下,因为我仍在学习很多这方面的知识,而.js中包含jquery的内容。我不知道这是属于两者还是javascript。抱歉搞混了,问题解决了。抱歉,这个问题与脚本完全无关。再次道歉。