JavaScript 中作用域与函数

在 JavaScript 中,作用域由函数决定( fucntion scope,lexical scope ),不是代码块( block scope )。

当我们声明一个函数时,我们不仅要关注该函数可用的作用域,还要关注该函数自身所创建的作用域,以及函数内部的声明是如何影响这些作用域的

JavaScript 的作用域行为,与受 C 语言语法影响的作用域不太一样,也就是那些使用括号({ })作为分隔符的语言。在大多数这样的语言中,每一个代码块都会创建自己的作用域,但在 JavaScript 中却并非如此!

在 JavaScript 中,作用域是由函数声明的,而不是代码块。声明的作用域创建于代码块,但不是终结于代码块,比如下面的代码:

name的作用域开始于var标记处,但却不是结束于大括号,而是结束于所在函数的结尾

查看全文