作用域问题
2018-09-26 本文已影响0人
此处应该有一个名字
--前言
写在前面,想介绍一下变量的作用域的问题。关于作用域来说最主要是了解在不同的环境下,变量的作用域会发生变化,像if for 语句中没有块级作用域时,和类C语言的作用域不同。同时对于声明的方式也需要考虑清楚,当用var声明后,则变量会初始化并有一个明确的作用域,而不声明的话,则会在最外层声明,在内层初始化,使之变为全局变量。
-- e.g.1 全局变量作用域
--e.g.2 全局变量和局部变量作用域比较
--e.g.3 没有块级作用域
--e.g.4 声明变量
在编写JavaScript 代码的过程中,不声明而直接初始化变量是一个常见的错误做法,因为这样可能会导致意外。我们建议在初始化变量之前,一定要先声明,这样就可以避免类似问题。在严格模式下,初始化未经声明的变量会导致错误。
--e.g.5 查询标志符
对于变量的搜索分两步,先搜索局部变量,若存在则搜索结束,若不存在则向上搜索作用域链,以获取所需要的变量。若想访问全局变量可用window.变量名。
--后记
作用域的确定还是要根据变量的所处的环境来判别,需要仔细,同时需要对语法规则有一定的认知,最好不要不声明而初始化变量。
未完待续~