富途 络科技有限公司2019秋招凉经

面试官姓潘,是一位年轻的和善的面试官,曾在tx就职,面试过程很nice。

他只问了我六个问题,我很多都答的不深入或者答不出来,也就是基础知识不牢固,不透彻。

1.Jquery和vue操作DOM的区别/p>

Jquery和vue.js都是js的库,Jquery操作dom本质上与原生js没区别,只不过Jquery获取的是Jquery对象,js获取的是DOM对象,两者更新数据所使用的方法不一样,但是两者可相互转换。

例如:

var aLink = $(“#a”); aLink.attr(“disabled”,”true”);

var alink = document.getElementById(“a”); alink.disabled = true;

转换:

$(“#a”).get(0) => alink

$(alink) => $(“#a”)

但是vue由于数据是双向绑定的,其中有一个compile解析器,专用于解析模板指令(例如v-on、v-model等),在初始化解析的时候,将变量和dom对象进行了绑定,所以当监听器observer发现(监听)数据发生变化后,会通知订阅者watcher去执行相应的函数,从而更新视图。

2.vue在更新数据时,具体是怎么更新的/p>

这个问题,当时没明白面试官的意图,可能是想问关于virtual dom。

关于理解virtual dom可参考链接:https://www.cnblogs.com/wubaiqing/p/6726429.html

这里博主根据链接里的理解,写下了简略的模拟DOM(实际远不止这些)

后台可见渲染出真的DOM对象,如下图:

 

3.现假设有一段字符串,形如:”<li>1<p>2<span>3<span>4</span>…….”,把这些字符串解析成DOM对象

利用栈数据结构去解析即可。解析第一个<li>的时候就压入到栈底,依次类推,遇到相对应的闭标签时,就出栈。

4.http请求缓存具体是怎么样的果缓存的文件未过期,怎么让用户即时获取到最新的文件/p>

请参考:

https://www.cnblogs.com/chenqf/p/6386163.html

https://www.cnblogs.com/eric-qin/p/6255616.html

5.说说XSS、CSRF,详细的。

参考:https://blog.csdn.net/Charles_Tian/article/details/82348067

中途由于对CSRF理解的不深,终止了回答,甚是尴尬。

6.请你实现一个功能,在调用delayHello()时,隔一秒后打印5。

面试官给出的代码雏形:

完成之后的代码:

其实最后这题很好解决,我当时其实也是这个想法(但是好像return出来的那个函数忘记加参数了),但是不知道为什么面试官说可不可以不用func(m)的方式调用,有没有其他的方法。

难道要用var f = func; f(m) 的方法/p>

不知道读者们有没有更好的办法…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年9月6日
下一篇 2018年9月6日

相关推荐