作用域——珠峰视频笔记

1.数据类型
基本数据类型 number string bealoon undefined null
引用数据类型 object

2.全局作用域 window
当浏览器加载页面 js时,首先会形成一个全局作用域 window,提供代码自上而下执行的环境。

var a = 12;
3.定义的3个步骤:
1. 声明一个变量 a,默认赋值 undefined
2. 在当前作用域中开辟一个位置存储 12这个数值
3. 让变量 a和 12关联在一起(赋值)

var b = a;
4.将 a的值赋值给b:
1. 把 a存储的值放到一个新的位置上(直接操作值),让新位置上的值和 b关联在一起
2. 此时 b和 a没有关系。

var arr1 = [12, 23];
5.将一个引用类型的值赋给变量
1. 在全局作用域外重新开辟一个内存空间来存储 [12, 23]这个键值对对象,这个内存空间会有一个十六进制的内存地址
2. 将 arr1通过这个内存地址与这个内存空间关联在一起,实际就是将这个内存地址赋值给了 arr1。

var arr2 = arr1;
6.将 arr1的值赋值给arr2:
将 arr1存储的内存地址赋值给 arr2,arr2也指向了这个内存空间。

arr2.push(100);
7.对arr2进行 push操作:
通过指针找到这个内存空间,将 100加到内存空间中

function sum(){
var total = null;
total += arguments[1];
return total;
}
8.函数声明:
开辟一个内存空间存储,将函数内容以【字符串】的形式存储在内存空间中。

sum([11, ‘23’, ‘aa’]);
9.函数执行:
函数执行会形成一个私有作用域,将之前创建函数时存储的代码字符串执行。

10.栈内存:作用域
提供js代码自上而下执行的环境(代码都是在栈内存中执行的:“执行栈”)
由于基本数据类型值比较简单,他们都是直接在栈内存中开辟一个位置,把值直接存储进去的
=> 当栈内存被销毁,存储的基本值也跟着被销毁

11.堆内存:引用值对应的空间
存储引用类型值(对象:键值对 函数:代码字符串)
=> 当前堆内存释放销毁,这个引用值彻底没有了
=> 堆内存的释放:当堆内存没有被任何的变量或其他东西所占用,浏览器会在空闲的时候,自主的进行内存回收,把所有不被占用的堆内存销毁(谷歌webkit内核浏览器)
=> 销毁堆内存:通过 null 空对象指针 可以使原始变量(或其他)谁都不指向,则原有被占用的堆内存就不被占用了,浏览器就会销毁它
作用域
堆内存
栈内存

(!!图片侵删!!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值