02——闭包 this 自执行函数 上下文栈 js中垃圾回收机制
1.全局变量的三种创建方式
(1)var a = 1 ——var 变量名=值
(2)window.b=2 ——通过window
(3)function add(){
c=2
} ——通过函数
2.闭包:函数嵌套函数,内部函数可以访问外部函数的变量就形成了一个闭包
例如:
3.this (这个的意思)——代表对象,谁调用了函数谁就是this,也可能指向window。
例如:
4.renturn 是返回值一般用于函数
renturn false作用: 阻止默认事件,阻止事件冒泡,退出函数
5.自执行函数
函数分为两种:(1)一般函数 预解析后通过函数调用 函数名( ) 执行
(2)自执行函数 js引擎一遇到整个函数就立马执行
自执行函数格式:
6.上下文栈
执行上下文——js中通过js引擎管理全局上下文和函数上下文的过程
全局上下文 ——scrip中所有js代码执行过程
函数上下文 ——调用函数时形成函数上下文(函数的执行过程)
上下文栈——执行整个代码的过程(执行整上下文的过程)
例如:
7.js中的垃圾回收机制及内存管理
内存管理——(1)全局变量和全局对象通过解除引用回收。(2)局部变量离开执行环境时自动回收
简单数据类型引用名和值存在内存栈中
复杂的就是对象 值在堆里 引用名在栈中 堆与栈通过指针保持联系
栈就是内存里的一个仓库 用于存放简单数据类型的名和值,复杂数据类型的引用名。
堆也是内存中的一个仓库 用于存放通过指针指向复杂数据类型比如函数,对象的值,比栈的内存占量大。
垃圾回收机制——避免内存泄露,溢出 所以需要垃圾回收机制 分为:标记清除和引用计数。
标记清除——当给变量添加清除标记时,引擎就会把被标记的变量从内存清除,
每个变量断绝与父级的连接之后 那么这个变量就会清除。
清楚方法例如:var a=null;
如图: