1.存储(变量)
JS中变量是存在栈内存中
JS中的内存分两种:栈内存、堆内存
栈内存:存放变量
堆内存:存代码块(object和function)
var fn=function()和function fn()这两个定义函数是不一样的
JS特殊在它是一个弱类型语言
在定义变量的时候没有明确的指明它的数据类型,而是由后面赋的值决定它的类型
var a="" var=12; var a=[];var a={}
java是强类型语言
定义变量的时候就指明它的数据类型,后面的赋值就不能随便赋值了,必须和数据类型保持一致
string a="12"; number a=12; boolean a=true;
JS内存存放机制
1)基本数据类型:string number boolean undefined null
如果变量后面的值是基本数据,就直接存在栈内存。栈里面要求变量不能重名,如果重名就会覆盖前者
2)引用数据类型:object array function
如果变量后面是引用数据类型,将后面的代码块存在堆内存中,然后将堆内存中的内存地址赋值给前面的变量
3)其他:Data Errey Math

备注:浏览器在执行js代码前,找出所有的关键字var和function将定义的变量存在内存中,存放完毕之后按照自上向下的顺序一步一步的执行,当使用某个变量的时候(console.log()),就会向内存查找,有就使用,没有就会报错(xxx is not defined),如果是赋值,就相当于给window添加了一个属性且赋值

2.销毁内存
浏览器自身每经一段时间,自动去检测js中没有用的内存,把它销毁掉
JS中的人为销毁变量,给这个变量赋值为null a=null;null的本质是空指针
内存销毁的顺序是:先存后销

最新文章

  1. localStorage使用
  2. GIT 查看/修改用户名和邮箱地址
  3. 【codeforces 733F】 Drivers Dissatisfaction
  4. PL/sql developer连接数据库的问题以及oracle数据库中文乱码的问题
  5. apache-virtual host
  6. Unity 物理引擎动力学关节
  7. hdu 1232 畅通工程 解题报告
  8. JS预解析
  9. Junit4中的新断言assertThat的使用方法
  10. Java动态编程---动态代理
  11. Android开发学习之路--异步消息Handler,Message,Looper和AsyncTask之初体验
  12. 如何制作中文Javadoc包,并导入到Eclipse
  13. 启动tomcat报错com.sun.faces.config.ConfigureListener
  14. 基于Python实现的死链接自动化检测工具
  15. mysql group_concat时间用法
  16. Django的rest_framework的视图之基于ModelViewSet视图源码解析
  17. android.DataBindingUtil
  18. svn: E155015: 提交失败(细节如下) 解决办法
  19. JFR 与 JProfilter Jvmisualvm
  20. Excel操作之级联菜单

热门文章

  1. ES的数据结构
  2. 软件教程 | Jupyter&stata之stata_kernel攻略
  3. 了解舵机以及MG996R的控制方法
  4. python实现移动二级目录下的文件到一级目录
  5. 病程极短(≤16周)的495例未分化关节炎患者随访2年的结局[EULAR2015_SAT0055]
  6. Echarts —自定义label标签的样式(formatter,rich,添加图标等操作)
  7. 四川九联代工M301H hi3798 mv300 mt7668魔百和 强刷和TTL线刷(救砖)经验分享
  8. PostGIS之维数扩展的九交模型
  9. 基于C++的OpenGL 12 之多光源
  10. 地理探测器简介(R语言)