《高性能javascript》读书笔记-第二章 数据存取

javascript中有四种基础的数据存取位置:字面量、变量、数组元素、对象成员。

1.接见字面量和局部变量的速率最快,接见数组元素和对象成员相对较慢。

2.变量在作用域链中的位置越深,接见所需时候越长。

-局部变量位于作用域链的肇端位置,因而接见速率最快;

-全局变量位于作用域链的最末端,因而接见速率最慢。

3.with语句和try-catch中的catch子句能够转变实行环境的作用域链,有时会增添接见价值,应警惕运用。

-with(A)会建立一个变量对象推入作用域链的首位,这个变量对象具有A对象的一切属性

function initUI(){
    width(document){//虽然避免了屡次誊写document,然则其他局部变量(如i)处于作用域链的第二个对象中
      let bd = body,
        links = getElementsByTagName('a'),
        i=0,
        len = links.length
    //其他代码
  }
}

-catch()子句会把非常对象推入作用域链的首位,catch代码块内部接见的一切局部变量会被放到作用域链的第二个对象中。

4.嵌套的对象成员会显著影响机能,只管罕用。

如实行时候:location.href < window.location.href < window.location.href.toString()

5.就对象及对象原型来讲,属性或要领在原型链中的位置越深,接见它的速率越慢。

如接见时候:实例属性 < 第一层原型属性 < 第二层原型属性

6.在同一个函数中没必要屡次读取同一个对象成员,发起第一次查询到值后就将其存储在局部变量中。

//bad
if(objecA.attr === 1 || objecA.attr === 2 || objecA.attr === 3){}
//good
const { attr } = objecA
if(attr === 1 || attr === 2 || attr === 3){}
    原文作者:hellocherry
    原文地址: https://segmentfault.com/a/1190000017237329
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞