var i = 10;function a (){var b = 1;function c (){var d = 2;}c();alert(b);alert(d);    alert(i);}
a();//输出此段代码 b=1, d is not defined,i=10

1.作用域:程序中定义这个变量的有效区域。                变量d只在函数c中才会有结果,函数c就是变量d的作用域。2.局部变量:有作用域限制的就叫做局部变量。             函数a下面的变量b,函数c下面的变量d。3.全局变量:在最外围的一个对象,或者初始化变量时没有使用var声明。                  函数i。window对象(window.onload等等)。4.作用域链:保证代码的执行过程,查询顺序:由内向外。 函数d→函数b→函数i5.JavaScript没有块级作用域。  如果需要拥有,将for语句块放入闭包中即可。

参考资料:https://www.imooc.com/video/9631/0 JavaScript高级程序设计

转载于:https://www.cnblogs.com/zxx1997/p/8053717.html

JavaScript 深入理解作用域相关推荐

  1. 关于JavaScript的词法作用域及变量提升的个人理解

    关于JavaScript的作用域,最近听到一个名词:"词法作用域":以前没有听说过(读书少),记录一下对此的理解,加深印象. 词法作用域:在JavaScript中,一个函数的作用域 ...

  2. 深入理解JavaScript的变量作用域

    在学习JavaScript的变量作用域之前,我们应当明确几点: a.JavaScript的变量作用域是基于其特有的作用域链的. b.JavaScript没有块级作用域. c.函数中声明的变量在整个函数 ...

  3. JavaScript的变量作用域深入理解(转)

    在学习JavaScript的变量作用域之前,我们应当明确几点:  a.JavaScript的变量作用域是基于其特有的作用域链的.  b.JavaScript没有块级作用域.  c.函数中声明的变量在整 ...

  4. 深入理解JavaScript的变量作用域(转)

    在学习JavaScript的变量作用域之前,我们应当明确几点: a.JavaScript的变量作用域是基于其特有的作用域链的. b.JavaScript没有块级作用域. c.函数中声明的变量在整个函数 ...

  5. 深入理解JavaScript的变量作用域(转载Rain Man之作)

    在学习JavaScript的变量作用域之前,我们应当明确几点: JavaScript的变量作用域是基于其特有的作用域链的. JavaScript没有块级作用域. 函数中声明的变量在整个函数中都有定义. ...

  6. 你不知道的JavaScript之词法作用域

    词法作用域 总结一下作用域的定义:作用域就是一套规则,这套规则用于引擎如何进行查找变量以及在哪找到变量(可以看看之前我博客写的引擎和作用域之间的对话). 作用域分为词法作用域(也叫静态作用域)和动态作 ...

  7. JavaScript中的作用域,闭包和上下文

    深入理解JavaScript中的作用域和上下文 很多语言当中都会有作用域的概念,它会给我们带来便利,偶尔也会有烦恼,只有清楚地理解和掌握了它,才能更好地为我所用,今天就带来这么一篇文章供大家参考. 介 ...

  8. javascript中关于作用域和闭包

    列表项目 前言 学习了javascript已经很久了,关于这个语言中的这两个特性也是早已耳熟能详,但是在实际的使用的过程中或者是遇到相关的问题的时候,还是不能很好的解决. 因此我觉得很有必要深入的学习 ...

  9. javascript --- 再读作用域和闭包

    执行环境: // 定义了变量或函数有权访问的其他数据,决定了它们各自的行为 // 每个执行环境都有一个与之关联的变量对象 // 执行环境中定义的所有变量和函数都保存在这个变量中 执行环境与函数: // ...

最新文章

  1. 梯度提升决策树(GBDT)与XGBoost、LightGBM
  2. 在解决方案中所使用 NuGet 管理软件包依赖
  3. k8s master 节点加入到可以调配node节点中的命令
  4. quartus将modelsim,synplify和quartus联合起来使用进行的FPGA设计(转)
  5. 1137. 第 N 个泰波那契数
  6. print\println\printf的区别
  7. 零基础学python难_0基础学python有多难
  8. CI框架PHP漫画小说二合一CMS
  9. android am start activity,adb shell am start -n package/.XXXactivity命令学习汇总
  10. MFC学习心得第一篇
  11. (一)PyQt5系列教程:使用PyQt5创建一个简单的demo
  12. 解决百度文库复制问题 非VIP也能复制文字
  13. android连接服务器代码实例,Android客户端连接服务器端,向服务器端发送请求HttpURLConnection(示例代码)...
  14. Python生成器教程
  15. matlab c1083,致命錯誤C1083:不能打開包含文件:'mexutils。沒有這樣的文件或目錄。...
  16. 一文让你学会PC软件升级,学不会过来打我
  17. 20款免费项目管理系统推荐
  18. VS2015编译适用于XP系统sp3的dll全过程-无需vs2015运行库
  19. Window系统 cd命令
  20. 图像的傅里叶变换 java_java使用傅里叶变换,得到变换之后的傅里叶频谱图像。...

热门文章

  1. History命令的显示带时间
  2. Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程
  3. Java基础教程【第三章:Java运算符】
  4. linux cpu监控方案,Linux性能优化和监控系列(二)分析CPU性能
  5. java main函数_Java经典面试题集锦
  6. mysql 分页拦截器_MyBatis 拦截器 (实现分页功能)
  7. PHP利用分组查询groupby,Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy...
  8. python调用dos命令_基于Python执行dos命令并获取输出的结果
  9. python中读取文本文件_Python三种读取txt文件方式
  10. java list 树_java list转换为树形