JavaScript全局变量不确定



我已经读到了惊讶的是,全局变量在JavaScript中具有未定义的值。

但是我的问题有所不同,因为我没有在内部创建相同的变量名称。

$(document).ready(function() {
    var all_ap;
    var url = "http://localhost/example/php-code/json.php";
    $.getJSON(url, function(result) {
        all_ap = result;
        console.log(result);
    });
    console.log(all_ap);
});

这些是控制台结果。

undefined
(6) [{…}, {…}, {…}, {…}, {…}, {…}]

看起来console.log(all_ap);根据上述结果在console.log(result);之前工作。

为什么?我应该如何使all_ap变量有效?

,因为 $.getJSON是异步函数,因此在将来完成后将其调用给它。这就是为什么您的console.log(all_app)首先被调用的原因,因为它在$.getJSON之后被称为同步。

最新更新