目录
作用域(scope)
全局作用域和局部作用域
通常来讲这块是全局变量与局部变量的区分。 参考引文:JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
全局作用域:最外层函数和在最外层函数外面定义的变量拥有全局作用域。
1)最外层函数和在最外层函数外面定义的变量拥有全局作用域
2)所有末定义直接赋值的变量自动声明为拥有全局作用域,即没有用var声明的变量都是全局变量,而且是顶层对象的属性。
3)所有window对象的属性拥有全局作用域
局部作用域:和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所以在一些地方也会看到有人把这种作用域称为函数作用域。
代码部分请参照引文。
块作用域与函数作用域
函数作用域是相对块作用域来进行解释的,其和局部作用域是一个意思。参考引文:JavaScript的作用域和块级作用域概念理解
块作用域:任何一对花括号{}中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是无效的,我们称之为块级作用域。
函数作用域:在函数中的参数和变量在函数外部是无法访问的。JavaScript 的作用域是词法性质的(lexically scoped)。这意味着,函数运行在定义它的作用域中,而不是在调用它的作用域中。下文会解释。
1 //C语言 2 #include <stdio.h> 3 void main() 4 { 5 int i=2; 6 i--; 7 if(i) 8 { 9 int j=3; 10 } 11 printf("%d/n",j); 12 }