Javascript jquery';s$(文件)。准备好了吗
在下面的示例中,有人能解释为什么可以识别var1而不能识别var2吗? 如果第一个和第二个引用同一DOM元素上的同一事件,为什么它们被视为不同的作用域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
$(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事件是什么。我回答的最后一句话就是这样区分的。