JavaScript语言精髓与编程实践笔记(4)

代码分块带来的语法效果是信息隐藏

语法作用域 表达式,语句,函数,全局 形式上的规范,语法分析阶段对代码组织结构的理解
变量作用域 表达式,函数,全局 实际的占有,代码执行阶段对变量存储的理解
  1. JS的变量作用域并没有语句这个级别
  2. 流程变更子句:continue, break, return, throw
  3. 语法作用域分级
  • 相同级别的语法作用域可以相互嵌套。
  • 高级别的语法作用域能够包含低级别的语法作用域。
  • 低级别的语法作用域名不能包含高级别的语法作用域。
  • 高级别的流程控制语句,对低级别的语句的作用域会产生突破。
  1. 变量作用域与变量声明周期
变量声明周期
创建 语法分析阶段:发现显式声明时
代码执行,发现试图写一个未被创建的变量时
释放 执行到函数结束/退出,将清除函数内未被引用的变量
全局终结/重载时,清除全局的变量和数据引用

变量作用域讨论的是“在形式上这个变量能在那个范围内存取”,变量的生命周期讨论的是“在实现的什么时候创建和释放一个变量”

你可能感兴趣的:(JavaScript语言精髓与编程实践笔记(4))