Javascript 如何在jquery中声明和设置变量?

Javascript 如何在jquery中声明和设置变量?,javascript,jquery,Javascript,Jquery,我有一个基本问题。在Jquery中,如果我声明一个变量并在函数中为其赋值,我如何维护这个更改?我以为它会覆盖它。请帮忙 这是我的意思的一个简单例子。警报框显示2,但如何在x中保存3 <script> var x=2 $(document).ready(function(){ (function(){ x=3; }); alert(x); }); </script> 变量x=2 $(文档).ready(函数(){ (功能(){ x

我有一个基本问题。在Jquery中,如果我声明一个变量并在函数中为其赋值,我如何维护这个更改?我以为它会覆盖它。请帮忙

这是我的意思的一个简单例子。警报框显示2,但如何在x中保存3

<script>
var x=2
$(document).ready(function(){
    (function(){
        x=3;
    });
    alert(x);
});
</script>

变量x=2
$(文档).ready(函数(){
(功能(){
x=3;
});
警报(x);
});

您编写的函数未被使用。试试这个

<script>
    var x=2
    $(document).ready(function(){
        (function(){
            x=3;
        })();
       alert(x);
    });
</script>

变量x=2
$(文档).ready(函数(){
(功能(){
x=3;
})();
警报(x);
});
注意添加的括号,它在声明后立即调用函数

正在工作的JSFIDLE:

在您的示例中,由于x是在函数外部定义的,因此它被输入函数闭包,因此,如果您立即或稍后运行函数,它将更改在函数范围之外定义的x的值

关于自调用函数的说明:


您编写了一个函数表达式,但它不是函数表达式的一部分,因此无法执行。必须将
()
放在函数表达式之后才能执行它:

var x=2;
$(文档).ready(函数(){
(功能(){
x=3;
})();
警报(x);
});

您创建了一个函数,但没有设置,也没有调用

请参见此处,如何设置和调用它:

var x=2
$(document).ready(function(){
    var test = (function(){
        x=3;
    });
    test();
    alert(x);
});


您从未执行将
x
设置为3的函数。
window.x=3
将在任何地方为全球客户服务that@dandavis全球化首先是个坏主意。除非绝对必要,否则不要将变量附加到
窗口
对象。@JonKoops:显然,我同意避免全局变量,但请注意,
x
已经“附加”到OP代码中的窗口,我只是指出了这一点。这个答案解释得最好。
var x=2
$(document).ready(function(){
    (function(){
        x=3;
    })();
    alert(x);
});