function foo() {
console.log( a ); // 2不是3
}

function bar() {
var a = 3;
foo();
}

var a = 2;
bar();

js中的作用域就是词法作用域

词法作用域是一套关于引擎如何寻找变量以及会在何处找到变量的规
则。 词法作用域最重要的特征是它的定义过程发生在代码的书写阶段( 假设你没有使用
eval() 或 with)

而动态作用域并不关心函数和作用域是如何声明以及在何处声明的, 只关心它们从何处调
用。 换句话说, 作用域链是基于调用栈的, 而不是代码中的作用域嵌套.

所以js的作用域是词法作用域即从函数书写时的位置寻找.

=====================================================================

主要区别: 词法作用域是在写代码或者说定义时确定的, 而动态作用域是在运行时确定
的。( this 也是! ) 词法作用域关注函数在何处声明, 而动态作用域关注函数从何处调用

最新文章

  1. Stm32F107VCT6硬件资源
  2. java 随机数 优惠码 生成 随机字串
  3. php排序 sort、rsort、asort、arsort、ksort、krsort
  4. JAVA基础知识之JVM-——自定义类加载器
  5. Akka学习博客
  6. go again
  7. hdu 3118(二进制枚举)
  8. Using command-line Subversion to access project source files
  9. 【解决】Oracle服务器ip地址被占用
  10. 【转】YUV值对应的颜色
  11. linux下挂载iso镜像文件(转)
  12. APP崩溃提示:This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.
  13. zabbix如何监控进程
  14. C#:往数据库插入/更新时候关于NUll空值的处理
  15. 在Django中使用ORM创建图书管理系统
  16. aria2的下载配置
  17. 改变html元素
  18. 两台linux之间建立信任关系,实现免密码ssh远程登录或scp数据上传
  19. phpcms v9模板制作常用代码集合
  20. 基本控件文档-UISlider属性---iOS-Apple苹果官方文档翻译

热门文章

  1. java获取泛型的真实类型
  2. iOS UICollectionView之三(基本用法)
  3. iOS符号表
  4. 解决eclipse svn插件 的lock问题
  5. mysql:innodb monitor(show engine innodb status)探秘
  6. Tomcat类加载器机制
  7. 学习CSS3BUTTON(一)
  8. windows系统调用 进程终止
  9. c语言小程序
  10. C#中Attribute的继承