首页 > 代码库 > Effective JavaScript Variable Scope Item 8-9 Globals and Locals
Effective JavaScript Variable Scope Item 8-9 Globals and Locals
本系列作为Effective JavaScript的读书笔记。
Item 8:少用全局对象
重点:
- 全局对象能够带来便利,但是有经验的程序员都会视图避免它。因为它会带来潜在的命名冲突的风险
- 全局变量是维系不同模块之间的纽带,模块之间只能通过全局变量来访问对方提供的功能
- 能使用局部变量的时候,绝不要使用全局变量
- 在browser中,this关键字会指向全局的window对象
- 两种用来改变全局对象的方式,通过var关键字声明以及给全局对象设置属性(通过this关键字)
- 通过全局对象进行针对当前运行环境的特性检测(Feature Detection),比如在ES5中提供了一个JSON对象用来操作JSON数据,那么可以通过if(this.JSON)来判断当前运行环境是否支持JSON
总结:
- 避免声明全局变量
- 尽量使用局部变量
- 避免向全局对象中添加属性
- 利用全局变量来进行特性检测
Item 9:总是声明局部变量
重点:
- 隐式声明的全局变量比全局变量更加麻烦。比如:
function swap(a, i, j) { temp= a[i]; // global a[i]= a[j]; a[j]= temp; }
上述的temp就会被隐式地声明成一个全局变量。
- 使用lint工具来检测JavaScript代码中是否有隐式声明的全局变量
总结:
- 总是记得通过var关键字来声明局部变量
- 使用lint工具来确保没有隐式声明的全局变量
Effective JavaScript Variable Scope Item 8-9 Globals and Locals
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。