JavaScript函数作用域和声明提前

函数作用域

JavaScript 中没有块级作用域,JavaScript 取而代之地使用了函数作用域。变量在声明它们的函数体以及这个函数体嵌套的任意函数内都是有定义的。

函数作用域.png

声明提前

以下两种写法是等价的。由于函数作用域的特性,局部变量在整个函数体始终是有定义的。

image1.png

image2.png

上述过程等价于:将函数内的变量声明提前至函数体顶部,同时变量初始化留在原来的位置。


由于 JavaScript 没有块级作用域,因此一些程序员特意将变量声明放在函数体顶部,而不是将声明靠近放在使用变量之处。这种做法使得他们的源代码非常清晰地反应了真实的变量作用域。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。