LeeJim/better-fe

实现类似jQuery的选择器

Opened this issue · 0 comments

感觉面试很喜欢出这类的问题啊,那么我就要好好总结一下才行了。

首先抛出问题:

如何实现类似jQuery的$$选择器,比如'#id','.class','[attr=""]',空格。

  1. 提出思路
  2. 考虑性能优化

众所周知,id选择器是最快的,所以如果是以#开头,则使用document.getElementById

然后类选择器的话,我的第一直觉是有三个选择:

  1. document.querySelector/document.querySelectorAll

  2. document.getElementsByClassName

  3. 暴力遍历整个DOM树,先序遍历,深度优先去遍历。

分析:

  1. document.querySelector只能支持到IE8,再旧的IE就不支持了。

  2. document.getElementsByClassName只能支持到IE9

  3. 暴力方法的话,就要看看如何在暴力的同时更快更高效了。

未完待续。。。

参考: