• js的变量,作用域,内存


    一,基本类型和引用类型的值
    基本类型的值是按值访问的,引用类型的值是保存在内存中的对象
    1,动态的属性
      只有引用类型的值可以添加属性方法
      不能给基本类型添加属性和方法
    2,复制变量值
      复制基本类型的值,两个变量参与的操作互不影响
      复制引用类型的值,两个变量引用同一个对象,改变之一,会影响其二
    3,传递参数
      按值传递,被传递的值会被复制给一个局部变量
      函数内部重写对象,这个变量引用就是一个局部对象了,这个对象会在函数执行 后消失
    4,检验类型
      instanceof操作符
      result = 变量 instanceof 类型 返回true或false
    二,执行环境及作用域
    全局环境是window对象
    1,延长作用域链
      try-catch语句的catch块
      with语句
    2,没有块级作用域
      if和for语句 当中的变量声明在if和for语句结束后也依旧存在于循环外部的 执行环境中
      1)声明变量
      var声明的变量添加到附近最近的环境当中,未用var声明的为全局变量
      2)查询标识符
      搜索过程,如果在局部环境中找到了该标识符,搜索停止,变量就绪,如果 局部变量中没有找到,沿作用域继续寻找,一直追溯到全局环境的变量对 象,如果   全局变量尚没有找到,则意味着此变量尚未声明
    三,垃圾收集
    1,标记清除
      变量进入环境时被标记进入环境,离开时被标记离开环境
    2,引用计数
      跟踪记录每个值被引用的次数,释放引用次数为0的值所占的内存
      循环引用的时候会出现问题
    3,性能问题
    4,管理内存
      一旦数据不在使用,将其设置为null,解除引用

  • 相关阅读:
    四种nlogn排序算法代码
    HDU1421
    HDU1789
    HDU1978
    HDU2059
    HDU2089
    深入理解数组与指针的区别
    存储字节对齐问题
    h5新特性<data*>
    浏览器的标准模式和怪异模式
  • 原文地址:https://www.cnblogs.com/b0xiaoli/p/3604607.html
Copyright © 2020-2023  润新知