作用域是函数的作用域,还是说,作用域是变量的作用域?

作用域的主语是?

qq_杀意隆_0
浏览 2636回答 4
4回答

王益达

楼上 @onemoo 关于作用域概念的解释完全适用 JS,作用域可以指变量,也可以指函数。这里只做个扩展补充:在 C 语言中,在变量声明的代码块之外是不可见的,通常称为块级作用域。例如:#include void main() {   int i = 1;   i--;   if(i == 0)   {       int j = 1;   }   printf("%d", j); }其中,变量  j 定义在 if 代码块中,外部无法访问。而 JavaScript 中,变量的作用域只有全局作用域和函数作用域,没有 if 、for、while 块级约束,外部可访问,例如:(function () {     var i == 1;   i--;   if(i == 0)   {       var j = 1;   }   console.log(j); })(); console.log(j);其中,变量  j 在 if 代码块外可以访问,而在 function 代码块外不可访问。当然,在 ES6 开始,新增了 let 声明变量的方式,用法类似于 var,但是所声明的变量只在 let 所在的代码块内有效。let 实际上为 JavaScript 新增了块级作用域。例如:{   let i = 1;   i--;   if(i == 0)   {       let j = 1;   }   console.log(j); }; console.log(i);其中,变量 i 和 变量 j  都不可被访问。

Caballarii

当然是变量的作用域,指这个变量在哪片范围里有效
打开App,查看更多内容
随时随地看视频慕课网APP