zoukankan      html  css  js  c++  java
  • JS-变量存储

    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的本质是空指针
    内存销毁的顺序是:先存后销

  • 相关阅读:
    node.js 与java 的主要的区别是什么
    基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)
    Linux下SVN安装配置
    Linux查看CPU和内存使用情况
    Linux添加/删除用户和用户组
    java远程调试
    springboot和mybatis集成,自动生成model、mapper,增加mybatis分页功能
    客户端、服务端,跨域访问设置
    HTTP和HTTPS协议
    KMP算法代码
  • 原文地址:https://www.cnblogs.com/1723466522gx/p/11812175.html
Copyright © 2011-2022 走看看