Skip to content

Commit b16fd8b

Browse files
committed
校对
1 parent 7707fc6 commit b16fd8b

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

chapter2.markdown

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,36 +33,36 @@
3333

3434
本章接下来的部分会对这几点深入讲解。
3535

36-
================校对分割线================
3736

3837
<a name="a3"></a>
39-
## 减少全局对象
38+
## 减少全局变量
4039

41-
JavaScript 使用函数来管理作用域,在一个函数内定义的变量称作“局部变量”,局部变量在函数外部是不可见的。另一方面,“全局变量”是不在任何函数体内部声明的变量,或者是直接使用而未声明的变量。
40+
JavaScript使用函数来管理作用域,在一个函数内定义的变量称作“本地变量”,本地变量在函数外部是不能被访问的。与之相对,“全局变量”是不在任何函数体内部声明的变量,或者是直接使用而未声明的变量。
4241

43-
每一个JavaScript运行环境都有一个“全局对象”,不在任何函数体内使用this就可以获得对这个全局对象的引用。你所创建的每一个全局变量都是这个全局对象的属性。为了方便起见,浏览器都会额外提供一个全局对象的属性window,(常常)用以指向全局对象本身。下面的示例代码中展示了如何在浏览器中创建或访问全局变量
42+
每一个JavaScript运行环境都有一个“全局对象”,不在任何函数体内使用this就可以获得对这个全局对象的引用。你所创建的每一个全局变量都是这个全局对象的属性。为了方便起见,浏览器会额外提供一个全局对象的属性`window`,(一般)指向全局对象本身。下面的示例代码展示了如何在浏览器中创建或访问全局变量
4443

45-
myglobal = "hello"; // antipattern
44+
myglobal = "hello"; // 反模式
4645
console.log(myglobal); // "hello"
4746
console.log(window.myglobal); // "hello"
4847
console.log(window["myglobal"]); // "hello"
4948
console.log(this.myglobal); // "hello"
5049

5150
<a name="a4"></a>
52-
### 全局对象带来的困扰
51+
### 全局变量的问题
5352

54-
全局变量的问题是,它们在JavaScript代码执行期间或者整个web页面中始终是可见的。它们存在于同一个命名空间中,因此命名冲突的情况时有发生,毕竟在应用程序的不同模块中,经常会出于某种目的定义相同的全局变量。
53+
全局变量的问题是,它们在整个JavaScript应用或者是整个web页面中是始终被所有代码共享的。它们存在于同一个命名空间中,因此命名冲突的情况会时有发生,毕竟在应用程序的不同模块中,经常会出于某种目的定义相同的全局变量。
5554

56-
同样,常常网页中所嵌入的代码并不是这个网页的开发者所写,比如:
55+
同样,在网页中嵌入不是页面开发者编写的代码是很常见的,比如:
5756

5857
- 网页中使用了第三方的JavaScript库
5958
- 网页中使用了广告代码
6059
- 网页中使用了用以分析流量和点击率的第三方统计代码
61-
- 网页中使用了很多组件挂件和按钮等等
60+
- 网页中使用了很多组件挂件和按钮等等
6261

63-
假设某一段第三方提供的脚本定义了一个全局变量result。随后你在自己写的某个函数中也定义了一个全局变量result。这时,第二个变量就会覆盖第一个,这时就会导致第三方脚本停止工作
62+
假设某一段第三方提供的脚本定义了一个全局变量result。随后你在自己写的某个函数中也定义了一个全局变量result。这时,第二个变量就会覆盖第一个,会导致第三方脚本工作不正常
6463

65-
因此,为了让你的脚本和这个页面中的其他脚本和谐相处,要尽可能少的使用全局变量,这一点非常重要。本书随后的章节中会讲到一些减少全局变量的技巧和策略,比如使用命名空间或者立即执行的匿名函数等,但减少全局变量最有效的方法是坚持使用var来声明变量。
64+
因此,为了让你的脚本和这个页面中的其他脚本和谐相处,要尽量少使用全局变量,这一点非常重要。本书随后的章节中会讲到一些减少全局变量的技巧和策略,比如使用命名空间或者即时函数等,但减少全局变量最有效的方法还是坚持使用`var`来声明变量。
65+
================校对分割线================
6666

6767
由于JavaScript的特点,我们经常有意无意的创建全局变量,毕竟在JavaScript中创建全局变量实在太简单了。首先,你可以不声明而直接使用变量,再者,JavaScirpt中具有“隐式全局对象”的概念,也就是说任何不通过var声明(译注:在JavaScript1.7及以后的版本中,可以通过let来声明块级作用域的变量)的变量都会成为全局对象的一个属性(可以把它们当作全局变量)。看一下下面这段代码:
6868

0 commit comments

Comments
 (0)