gpt4 book ai didi

javascript - 我无法使用我的函数更改或更新变量

转载 作者:行者123 更新时间:2023-12-02 23:10:32 24 4
gpt4 key购买 nike

我正在尝试创建一个按钮,单击它可以更改我已经声明的变量

这是我的简单代码,但它似乎不起作用

<script>
var a = 1;
function myFunction(a){
if(a=1){
alert("the value of a now is" + a);
a=2
}else if(a=2){
alert("the value of a now is" + a);
}
}
</script>

我期望的工作是,如果我运行或单击按钮两次,结果将提醒我“a 现在的值为 2”,但它会一直提醒我“a 现在的值为 1”

最佳答案

您正在 if()else if() block 中执行赋值操作 = 使用相等性 ==运算符:

 if(a == 1)

在 else if 中:

else if(a == 2)

这就是为什么你总是得到输出:

"the value of a now is 1"

因为当您调用该函数时,值 1 会被重复分配给 a

此外,在 if block 中分配值 2 后,您将失去对函数内局部变量 a 的访问权限,稍后当您再次执行该函数时,您将无法访问该函数内的局部变量 a将检查新的局部变量。

为了防止这种情况,不要在函数参数中使用局部变量,只需访问全局a

var a = 1;
function myFunction(){
if(a == 1){
alert("the value of a now is" + a);
a = 2;
}else if(a == 2){
alert("the value of a now is" + a);
}
}

您还可以使用module pattern防止不必要的变量污染全局命名空间。

var handler = (function myFunction(){
var a = 1;
return function(){
if(a == 1){
alert("the value of a now is" + a);
a = 2;
}else if(a == 2){
alert("the value of a now is" + a);
}
};
})();
<button onclick="handler()" id="myButton">Click</button>

关于javascript - 我无法使用我的函数更改或更新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57380149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com