美文网首页
2018-11-25红宝书第4章总结

2018-11-25红宝书第4章总结

作者: _CCoder | 来源:发表于2018-11-26 16:40 被阅读0次

    第四章 变量、作用域和内存问题

    • ecmascript变量包含两种不同数据类型:基本类型和引用类型(对象)
    • 五种基本类型:Undefined Null Boolean Number String
    • 基本类型是按值访问的,引用类型是按引用访问的
    • 引用类型复制时,复制的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象,复制前后两个变量最终都指向同一个对象
    • ECMAScript中所有函数的参数是按值传递的,在向参数传递引用类型值时,会把这个值在内存中的地址复制给一个局部变量,因此局部变量的变化会反映在函数的外部
    • 传参时对象按值传递,传递的是内存地址
    • 所有引用类型都是Object的实例
    • 如果用instanceof检测基本类型的值,则该操作符始终返回false,因为基本类型不是对象
    • 全局执行环境是最外围的一个执行环境
    • 每个函数都有自己的执行环境
    • 作用域链 -- 内部函数可以访问外部变量,外部不能访问内部变量
    • 函数参数也被当做变量来对待,因此其访问规则和执行环境中的其他变量相同
    • 有些语句可以在作用域链的前端临时增加一个变量对象
      • try-catch语句的catch块
    • 如果局部环境中存在着同名标识符,就不会使用位于父环境中的标识符
    • 垃圾收集机制:
      • 标记清除 (主流的垃圾收集算法)
      • 引用计数
    • 一旦数据不再有用,最好将其值设置为null来释放引用,这种做法叫解除引用,适用于大多数全局变量和全局对象的属性
    • 基本类型值在内存中占据固定大小的空间,保存在栈内存中
    • 引用类型的值是对象,保存在堆内存中

    相关文章

      网友评论

          本文标题:2018-11-25红宝书第4章总结

          本文链接:https://www.haomeiwen.com/subject/xgdqqqtx.html