资讯专栏INFORMATION COLUMN

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

everfight / 2210人阅读

摘要:局部变量位于作用域链的起始位置,因此访问速度最快全局变量位于作用域链的最末端,因此访问速度最慢。如访问时间实例属性第一层原型属性第二层原型属性在同一个函数中没必要多次读取同一个对象成员,建议第一次查询到值后就将其存储在局部变量中。

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){}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/99692.html

相关文章

  • 读书笔记】《性能JavaScript

    摘要:性能访问字面量和局部变量的速度是最快的,访问数组和对象成员相对较慢变量标识符解析过程搜索执行环境的作用域链,查找同名标识符。建议将全局变量存储到局部变量,加快读写速度。优化建议将常用的跨作用域变量存储到局部变量,然后直接访问局部变量。 缺陷 这本书是2010年出版的,这本书谈性能是有时效性的,现在马上就2018年了,这几年前端发展的速度是飞快的,书里面还有一些内容考虑IE6、7、8的东...

    chengjianhua 评论0 收藏0
  • 性能JavaScript读书笔记

    摘要:除此以外,让元素脱离文档流也是一个很好的方法。因为元素一旦脱离文档流,它对其他元素的影响几乎为零,性能的损耗就能够有效局限于一个较小的范围。讲完重排与重绘,往元素上绑定事件也是引起性能问题的元凶。高性能这本书非常精致,内容也非常丰富。 showImg(https://segmentfault.com/img/bVJgbt?w=600&h=784); 入手《高性能JavaScript》一...

    W_BinaryTree 评论0 收藏0
  • 性能JavaScript》(读书笔记

    摘要:加载的模块会以参数形式传入该函数,从而在回调函数内部就可以使用这些模块。异步加载,和,浏览器不会失去响应它指定的回调函数,只有前面的模块都加载成功后,才会运行,解决了依赖性的问题。插件,可以让回调函数在页面结构加载完成后再运行。 这次主要是对《高性能JavaScript》一书的读书笔记,记录下自己之前没有注意到或者需要引起重视的地方 第一章 加载和执行 js代码在执行过程中会阻塞浏览...

    moven_j 评论0 收藏0
  • 前端补集 - 收藏集 - 掘金

    摘要:原文地址一个非常适合入门学习的博客项目前端掘金一个非常适合入门学习的项目,代码清晰结构合理新闻前端掘金介绍一个由编写的新闻。深入浅出读书笔记知乎专栏前端专栏前端掘金去年的一篇老文章,恰好今天专栏开通,迁移过来。 破解前端面试(80% 应聘者不及格系列):从闭包说起 - 掘金修订说明:发布《80% 应聘者都不及格的 JS 面试题》之后,全网阅读量超过 6W,在知乎、掘金、cnodejs ...

    YorkChen 评论0 收藏0
  • 前端补集 - 收藏集 - 掘金

    摘要:原文地址一个非常适合入门学习的博客项目前端掘金一个非常适合入门学习的项目,代码清晰结构合理新闻前端掘金介绍一个由编写的新闻。深入浅出读书笔记知乎专栏前端专栏前端掘金去年的一篇老文章,恰好今天专栏开通,迁移过来。 破解前端面试(80% 应聘者不及格系列):从闭包说起 - 掘金修订说明:发布《80% 应聘者都不及格的 JS 面试题》之后,全网阅读量超过 6W,在知乎、掘金、cnodejs ...

    AbnerMing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<