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

  • 相关阅读:
    手机开发中的AP与BP的概念
    pk8和x509.pem转换成keystore
    android系统release签名
    java读取pfx或P12格式的个人交换库公私钥
    使用IntelliJ IDEA查看类的继承关系图形
    Java日志框架与日志系统
    Java常见加密技术的密钥与加密串长度
    quartz的持久化任务调度使用应用的dataSource
    敏感数据脱敏
    Jquery的Ajax中contentType和dataType的区别
  • 原文地址:https://www.cnblogs.com/1723466522gx/p/11812175.html
Copyright © 2011-2022 走看看