Javascript 全局声明DOM元素变量的效率
我想知道全局声明变量与否的最佳实践是什么:如果我有一个Javascript 全局声明DOM元素变量的效率,javascript,dom,scope,Javascript,Dom,Scope,我想知道全局声明变量与否的最佳实践是什么:如果我有一个var foo=document.getElementById('bar')和foo仅在一个被多次调用的函数中使用,那么foo最好在函数内部或外部声明(性能方面) 如果函数内部声明了foo,这是否意味着每次函数运行时程序都必须在DOM树中搜索该元素?如果是这样,为什么在函数外部声明foo不是更好呢?如果在函数内部使用foo,最好在本地使用它。因为这样可以避免您和其他人的混淆。如果你在全局范围内声明它,那么变量总是有可能被误用 如果您在函数内部
var foo=document.getElementById('bar')
和foo
仅在一个被多次调用的函数中使用,那么foo
最好在函数内部或外部声明(性能方面)
如果函数内部声明了
foo
,这是否意味着每次函数运行时程序都必须在DOM树中搜索该元素?如果是这样,为什么在函数外部声明foo
不是更好呢?如果在函数内部使用foo
,最好在本地使用它。因为这样可以避免您和其他人的混淆。如果你在全局范围内声明它,那么变量总是有可能被误用 如果您在函数内部使用foo
,最好在本地使用它。因为这样可以避免您和其他人的混淆。如果你在全局范围内声明它,那么变量总是有可能被误用 避免全局声明
作为开发人员,您的工作是尽可能限制全局范围内可用的变量数量。为什么?有几个理由,它们都是很好的理由
- 可读性和直观性
- 维修性
- 浏览器支持
var foo = document.getElementById('bar');
function a() {
// do Something with foo;
}
function b() {
// do Something with foo;
}
a();
b();
你最好还是写信
let MyApp = {
a: function() {
//do Something with this.foo;
},
b: function() {
//do something with this.foo;
}
}
myApp.foo = document.getElementById('bar')
myApp.a();
myApp.b();
避免全局声明 作为开发人员,您的工作是尽可能限制全局范围内可用的变量数量。为什么?有几个理由,它们都是很好的理由
- 可读性和直观性
- 维修性
- 浏览器支持
var foo = document.getElementById('bar');
function a() {
// do Something with foo;
}
function b() {
// do Something with foo;
}
a();
b();
你最好还是写信
let MyApp = {
a: function() {
//do Something with this.foo;
},
b: function() {
//do something with this.foo;
}
}
myApp.foo = document.getElementById('bar')
myApp.a();
myApp.b();
如果只在一个函数中使用
foo
var,则无需声明它,globalI将在函数中声明它。除非它是一个大的静态值列表,或者是不可变的,否则我不会尝试全局存储它,通常最好在可能的情况下限制范围。你能在这里发布你的简化代码吗?由于它依赖于系统,每次调用函数时都会搜索foo
。请注意,如果动态更新DOM,则使用全局变量与函数局部变量的行为可能会有所不同。如果只在一个函数中使用foo
变量,则无需在函数中声明它,globalI将在函数中声明它。除非它是一个大的静态值列表,或者是不可变的,否则我不会尝试全局存储它,通常最好在可能的情况下限制范围。你能在这里发布你的简化代码吗?由于依赖于系统,foo
将在每次调用函数时进行搜索。请注意,如果动态更新DOM,则使用全局变量与函数局部变量的行为可能会有所不同。