《High Performance JavaScript》的一些摘要2

Where you store and access data in JavaScript can have a measurable impact on the
overall performance of your code. There are four places to access data from: literal
values, variables, array items, and object members. These locations all have different
performance considerations.
• Literal values and local variables can be accessed very quickly, whereas array items
and object members take longer.
• Local variables are faster to access than out-of-scope variables because they exist
in the first variable object of the scope chain. The further into the scope chain a
variable is, the longer it takes to access. Global variables are always the slowest to
access because they are always last in the scope chain.
• Avoid the with statement because it augments the execution context scope chain.
Also, be careful with the catch clause of a try-catch statement because it has the
same effect.
• Nested object members incur significant performance impact and should be
minimized.
• The deeper into the prototype chain that a property or method exists, the slower
it is to access.
• Generally speaking, you can improve the performance of JavaScript code by storing
frequently used object members, array items, and out-of-scope variables in local
variables. You can then access the local variables faster than the originals.

Scope chain while executing add()

Augmented scope chain in a with statement

Executing the closure


DOM access and manipulation are an important part of modern web applications. But
every time you cross the bridge from ECMAScript to DOM-land, it comes at a cost. To
reduce the performance costs related to DOM scripting, keep the following in mind:
• Minimize DOM access, and try to work as much as possible in JavaScript.
• Use local variables to store DOM references you’ll access repeatedly.
• Be careful when dealing with HTML collections because they represent the live,
underlying document. Cache the collection length into a variable and use it when
iterating, and make a copy of the collection into an array for heavy work on
collections.
• Use faster APIs when available, such as querySelectorAll() and
firstElementChild.
• Be mindful of repaints and reflows; batch style changes, manipulate the DOM tree
“offline,” and cache and minimize access to layout information.
• Position absolutely during animations, and use drag and drop proxies.
• Use event delegation to minimize the number of event handlers.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值