博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微众银行面试小总结
阅读量:4462 次
发布时间:2019-06-08

本文共 1119 字,大约阅读时间需要 3 分钟。

昨天进行微众银行的面试,其中有一个面试题目引起了我的兴趣(恭喜你,成功引起我的兴趣→_→)就是在jquery选择器中$('#div .cls')和$('#div').find('.cls')有什么不同

当时知道这个问题的时候,我是懵逼的,因为我从来没有思考过这个问题,最近用cheerio经常用到find来查找,但是也没有思考过。于是在面试完后查阅API,谷歌只能找到一些比较理论的解释

和同事交流,得出结果是:

    $()选择时返回的是一个jquery对象,而find方法是调用这个对象的方法。

  所以按照这样来说,$()会比find快,如果这个问题就这样完结了那就太没意思了,当时面试回答的是find方法的查询效率会更高(程序员的直觉),但是作为一个科学的程序员,咱们可不能凭直觉说话,刚刚洗澡的时候又想起这个问题,

于是洗完澡赶紧出来手写了个demo,如下:

源码在此:

 
1  2  3  4     
5 Document 6 9 10 11
12
13
ddd14
ddd15
ddd16
17
18 19 20 21 22 23 52 53
 

 

 

每一次的第一次执行结果,一定是find方法花的时间会比直接查找会少,因此,推翻了之前的那个结论,至于为什么?

我的观点是这样的:

  CSS的选择器的匹配规则是从右到左的,我猜JQUERY也是这样,也就是说比如:

$('#div .cls')会在dom树中先查找.cls的类,再从这些类中查找其ID为div的节点,因此这样的写法是比较耗时的。 说到这里,你应该懂我的意思了吧?! 好,抱着验证我的观点的想法,我再写了一次代码,就是现在你看到的第三个input框,他是直接查找$('.cls')的结果,数据说话,它所耗费的时间是最短的。 我想,到了这里,似乎可以做一个小总结了, 之前所得的结论并没有错————$()选择时返回的是一个jquery对象,而find方法是调用这个对象的方法。 然而在查找嵌套层次比较深,或者查询次数比较多的情况下find的效率会更高效 然而真正的原因是不是这样呢?!欢迎各位留言或者私信我一起探讨~!

转载于:https://www.cnblogs.com/danielweb/p/4954804.html

你可能感兴趣的文章
ELK 分布式日志处理 10.12
查看>>
Java虚拟机详解05----垃圾收集器及GC参数
查看>>
7. 单位,移动布局
查看>>
inux中bin与sbin目录的作用及区别介绍
查看>>
USACO 3.1 Contact
查看>>
Office之什么是高内聚低耦合
查看>>
一些奇怪的问题求回答
查看>>
这些年踩过的坑
查看>>
iOS开发拓展篇——如何把项目托管到GitHub
查看>>
性能优化之数据库优化
查看>>
类的继承、菱形继承、派生、多态
查看>>
mysql约束
查看>>
javascript鼠标及键盘事件总结及案例
查看>>
mysql表之间的关系及级联操作
查看>>
mac 搭建virtualenv的那些坑
查看>>
多路复用IO模型
查看>>
2019秋招复习笔记--数据库基本操作
查看>>
2019秋招复习笔记--智力题
查看>>
MySQL学习笔记
查看>>
面试题
查看>>