Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery';s$(文件)。准备好了吗_Javascript_Jquery_Scope - Fatal编程技术网

Javascript jquery';s$(文件)。准备好了吗

Javascript jquery';s$(文件)。准备好了吗,javascript,jquery,scope,Javascript,Jquery,Scope,在下面的示例中,有人能解释为什么可以识别var1而不能识别var2吗? 如果第一个和第二个引用同一DOM元素上的同一事件,为什么它们被视为不同的作用域 $(document).ready(function() { var1 = 12; // no var =global var var2 = 24; // local }); $(document).ready(function() { console.log(var1); // = 12 co

在下面的示例中,有人能解释为什么可以识别var1而不能识别var2吗? 如果第一个和第二个引用同一DOM元素上的同一事件,为什么它们被视为不同的作用域

$(document).ready(function() {

    var1 = 12;      // no var =global
    var var2 = 24;  // local
});

$(document).ready(function() {

    console.log(var1);  // = 12
    console.log(var2);  // fail

});

这就是JavaScript中作用域的工作原理

如果没有
var
,则始终是属性分配。隐式对象是
窗口


它与事件无关,事件是DOM的一部分,但与作为语言的JavaScript无关。

这就是JavaScript中作用域的工作方式

如果没有
var
,则始终是属性分配。隐式对象是
窗口


它与事件无关,事件是DOM的一部分,但与JavaScript作为一种语言无关。

因为您使用
var var2
声明
var2
它被视为局部变量,其中as var1被视为全局范围内声明的变量


由于javascript具有函数作用域,在函数作用域内声明的任何变量将仅在其内可用

,因为您已使用
var var2
声明
var2
它被视为局部变量,其中as var1被视为在全局作用域中声明的变量


由于javascript具有函数作用域,因此在函数作用域内声明的任何变量将仅在其内可用

var2被视为在不同的作用域中,因为它是另一个函数的本地变量,而不是从中调用的函数,它与
.ready
事件无关。例如:

(function(){
    var v = 1;
})();
//v outside that function is undefined. if you try to call it, it will return an undefined error
这是一个局部/全局变量的问题。。请阅读更多关于它们之间差异的内容。。它们存在于每种编程语言中


var2被认为是在不同的范围内,因为它是另一个函数的本地函数,而不是从中调用的函数,它与
.ready
事件无关。例如:

(function(){
    var v = 1;
})();
//v outside that function is undefined. if you try to call it, it will return an undefined error
这是一个局部/全局变量的问题。。请阅读更多关于它们之间差异的内容。。它们存在于每种编程语言中


我对var的使用没有意见。我更感兴趣的是什么是不同的范围。这两个函数不是因为引用同一DOM元素上的同一事件而合并在一起吗?@Abe Nope。它们是两个不同的函数,只是绑定到同一事件。JavaScript(语言,不是jQuery,不是DOM)不知道DOM事件是什么。我回答的最后一句话就是这样区分的。我对var的用法没意见。我更感兴趣的是什么是不同的范围。这两个函数不是因为引用同一DOM元素上的同一事件而合并在一起吗?@Abe Nope。它们是两个不同的函数,只是绑定到同一事件。JavaScript(语言,不是jQuery,不是DOM)不知道DOM事件是什么。我回答的最后一句话就是这样区分的。