如何获取页面出现次数最多的 HTML 标签
相同点:
递归和迭代都是循环的一种。
不同点:
1、程序结构不同
递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环。 其中,迭代与普通循环的区别是:迭代时,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
2、算法结束方式不同
递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。 当然很多情况都是多种循环混合采用,这要根据具体需求。
3、效率不同
在循环的次数较大的时候,迭代的效率明显高于递归
这是一道前端基础与编程功底具备的面试题:
如果你前端基础强会了解 document.querySelector(*) 能够列出页面内所有标签
如果你编程能力强能够用递归/正则快速实现同等的效果
有三种 API 可以列出页面所有标签:
- document.querySelector(‘*’),标准规范实现
- $$(‘*’),devtools 实现
- document.all,非标准规范实现
document.querySelectorAll(‘*’)
1 |
|
使用 document.querySelectorAll 实现如下
1 |
|
使用 element.children 递归迭代如下 (最终结果多一个 document)
1 |
|
参考链接
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!