为什么说DOM操作很慢

一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大家都会这样说,在网上学习了一些资料,这边整理出来。 首先,DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢,而是说操作了这个对象后,会触发一些浏览器行为,比如布局(layout)和绘制(paint)。下面主要先介绍下这些浏览器行为,阐述一个页面是怎么最终被呈现出来的,另外还会从代码的角度,来说明一些不好的实践以及一些优化方案。 浏览器是如何呈现一张页面的 一个浏览器有许多模块,其中负责呈现页面的是渲染引擎模块,比较熟悉的有WebKit和Gecko等,这里也只会涉及这个模块的内容。 先用文字大致阐述下这个过程: 解析HTML, »

对Js赋值运算的新认识

此文的目的是为了解释如下现象: var foo = { n: 1 }; var bar = foo; foo.x = foo = { n: 2 }; console.log(foo.x); // undefined 赋值运算符 根据ECMA规范中的定义赋值运算符的产生式(production)以及运算过程如下: The production AssignmentExpression : LeftHandSideExpression »