更新 jQuery 中的全局变量

update the global variable in jquery

本文关键字:全局变量 jQuery 更新      更新时间:2023-09-26
如何

更新jQuery中的变量值?如何在函数中更新变量值时更新变量值?我在jQuery中检查了变量的范围,但我不明白。

<script>
$(document).ready(function(){
  var s = 9;
  function data()
  {
     var s = 11;
  }
  data();
  alert(s);
});
</script>

我想要 11 个数据警报,但我得到了 9 个。 如果值在函数中更新,如何更新该值。 请帮帮我解决这个问题。

我想你的意思是 11 而不是 80,或者你没有正确解释它。

这里s是全局变量,您可以在data函数中修改其值。当您data函数中使用var s时,它会创建一个新的变量名称s其范围仅限于该函数。这就是为什么你会得到 9 超出其范围的原因。

$(function(){
    var s = 9;
    function data()
    {
        s = 11; //removed var from here, if you use var here it will...
                //create new variable whose scope will end outside this function.
    }
    data();
    alert(s);
});

推荐阅读:

  • 值、变量和文本
  • JavaScript 中的 var 及其范围

首先,这不是关于jQuery的问题。"$(文档).ready"...代码中的包装器与问题无关。

其次,就像我在评论中所说的那样,我假设你问题中的"70"和"80"是错误的,你的意思是说"9"和"11"。

要回答您的问题,您需要在s = 11之前删除var。此代码应执行所需的操作:

var s = 9;
function data()
{
   s = 11;
}
data();
alert(s);

当你添加"var"时,你告诉代码s应该只存在于当前函数(data)的范围内,并覆盖外部作用域中称为"s"的任何其他变量。如果没有"var",两个s指的是同一个变量。

我建议研究"Javascript中的范围",并更多地了解"var"和变量范围是如何工作的。

嗨,

我认为你不能从这个脚本中获得 70 的警报。而且我们不能用这些值在警报中获得 80,从这个脚本中 u 将在警报框中得到 9,因为你将var s定义为两次,一次是全局的,另一个是私有的,当你要发出警报时,脚本采用全局。您可以使用以下脚本在警报框中获取 11:

<script>
$(document).ready(function(){
  var s = 9;
function data()
{
   s = 11;
}
data();
alert(s);
});
</script>