一、今日学习内容:
- 执行环境与作用域
- 执行环境和变量对象和作用域
- 概念:
- 标识符:变量名/函数名/形参/对象的键名 统称为标识符
- 执行环境:代码运行的环境,js有两种执行环境,全局执行环境,函数执行环境
- 作用域链:提供了一套标识符访问的规则,保证标识符有序访问
- 总结
- 作用域链:提供了一套标识符访问的规则,保证标识符有序访问(规则:从里往外找,查找标识符,找到就使用,停止查找过程,直到window,找不到就报错)
- 作用域:标识符可以被访问的范围:(自己和自己的子(后代)作用域)
- 函数进阶
- 声明函数的方式
- 表达式
- let/var/const fn= function( ) { ]
- 函数的参数
- 形参:占位用的,叫什么都没有关系,只要是要语义化,形式参数
- arguments
- 是一个伪数组,在函数内部获取到所有实参的集合,可以使用for循环,可以通过下标取值,像数组,不是数组,不能使用数组方法
- 函数返回值
- 函数返回什么,就可以得到什么,函数可以返回任何东西
- 函数没有写return,返回值为默认值,undefined
- 函数调用
- 自己调用自己----自调用函数,立即执行函数表达式IIFE
- 闭包
- 跨作用域访问变量,形成闭包,闭包是一种作用域的体现
- 常见闭包写法:
- 复函数嵌套子函数,子函数可以访问父函数的变量,把子函数返回或挂载在window上
|