• 高性能Javascript 数据访问读书笔记


    数据的存储位置决定获取最佳的读写效率

    直接量(字符串,数字,布尔值、对象、数组、函数、正则表达式,特殊的null,undefined)、变量     很快

    数组元素 以数字索引

    对象  字符串索引

    管理作用域链

    Scope      影响性能和功能

    this的指向,函数能访问到的变量

    作用域的工作原理

    function 即一个对象,即Function 对象的一个实例   

    有一些可编辑的属性,还有一些供引擎存取的内部属性,其中一个属性是Scope

    Scope   包含了一个函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,确定哪些数据能被函数访问,每个对象都被称为一个可变对象,以键值对形式存在,函数被创建时,会被创建此函数的作用域中的访问的数据对象所填充。

    执行函数时会创建一个称为运行期上下文executing context的内部对象   一个运行期上下文定义了一个函数执行时的环境,函数每次执行时对应的运行期上下文都是独一无二的,所以多次调用同一个函数会创建多个运行期上下文,函数执行完毕,执行期上下文就被销毁。

    每个运行期上下文都有自己的作用域链,用于标识符解析,

    运行期上下文的创建进程:

    初始化为当前运行函数的Scope属性中所包含的对象,按照它们出现在函数中的顺序,被复制到上下文的作用域链中,一个被称为活动对象activation object的新对象就为执行期上下文创建好了,它包含了所有局部变量,命名参数,参数集合,以及this,此对象被插入作用域的,

    每遇到一个变量,都会以历一次标识符解析过程以决定从哪里获或存数据,

    标识符解析的性能

    一个标识符所在的位置越深,读写速度就越慢,

    读写局部变量是最快的,

    读写全局变量是最慢的,它位于运行期上下文的最未端,

    总结: 尽可能的使用局部变量,一个多次被引用的全局变量,可以用局部变量先得到

     

  • 相关阅读:
    TinyOS在ubuntu 14.04下安装教程
    C++ STL标准入门
    C++ 模板
    多态
    C++继承
    C++类型转换 -- 由其他类型转换到自定义类型
    运算符重载
    友元
    typedef用法
    c++细节--section1
  • 原文地址:https://www.cnblogs.com/yushunwu/p/2174249.html
Copyright © 2020-2023  润新知