全局变量的概念开始固化。函数之外的任何变量都是全局变量,对吗?如果变量包含在 中$(document).ready( function() { *code* } );,它们是否被认为是全局的?
我想出了一个解决方法,将一个经常使用的数组放入使用该数组的函数中,但现在我基本上将我的 HTML 内容用作我的全局变量,如果这有意义的话(例如,在 div 中使用文本并将其传递给功能)。这是人们通常如何不断改变/经常引用的变量吗?
如果它们不是全局变量,我是否仍应将变量包含在函数中以开发良好实践?
全局变量的概念开始固化。函数之外的任何变量都是全局变量,对吗?如果变量包含在 中$(document).ready( function() { *code* } );,它们是否被认为是全局的?
我想出了一个解决方法,将一个经常使用的数组放入使用该数组的函数中,但现在我基本上将我的 HTML 内容用作我的全局变量,如果这有意义的话(例如,在 div 中使用文本并将其传递给功能)。这是人们通常如何不断改变/经常引用的变量吗?
如果它们不是全局变量,我是否仍应将变量包含在函数中以开发良好实践?
不,它们被认为是函数内部的局部范围。
检查一下 JavaScript 范围:https ://stackoverflow.com/a/500459/1538708
通过函数确定变量的范围是一种很好的做法,尤其是当您想通过最小化程序运行代码时。
中包含的变量$(document).ready不是全局的。当你在函数中声明一个变量时,它的作用域就是函数,那么一旦函数结束,这个变量就不再存在了。
var myGlobal = "foo";
$(document).ready(function(){
var myVar = 42; // myVar will only exist in this scope
$.myVar = 42; // $.myVar will be accessible anywhere since you have access to '$' object
// care, this variable will be accessible anywhere
// if you declare a variable with the same name but omit to add the "var" first, it will work without any error (unless you have "use strict")
myGlobal = "bar";
});
尽可能避免使用全局变量。不要创建一个包含所有你需要的“上帝对象”,你的代码只会更难阅读和理解。
你也可以看看"use strict"。