不知怎么回事,一旦紧张起来讲话都吞吞吐吐的,没有平时那么连贯。脑子转得飞快,但是嘴巴跟不上。没有一个好口才,就是不吃香了!
不过话说回来,刚才我经历了一场电话面试,好几个问题吧我给问懵了。我面的是前端的岗位,腾讯真是重在细节啊!
jQuery中选择器的快慢比较
我只回答上来id选择器最快,其他的都不太清楚。
正确答案:id、标签选择器 > 类选择器 > 属性、伪类选择器
AngularJS和Angular的变化检测
这道题我回答前者是“脏数据”,后者是检测有否调用setter函数。
但是面试官追加问我其中的原理是什么,过程是怎么样的?如此细节的东西我根本没法完全回答上来,好在前几天看了篇帖子说脏检查是定时轮询,也没过过脑子就直接说了,真是大错特错!
正确答案:在页面构造完成之后,只有异步事件才会导致组件中的数据发生变化。AngularJS 对常用的 DOM 事件,XHR 事件等做了封装,在里面触发进入 AngularJS 的 digest 流程。在
digest 流程里面,会从 rootscope 开始遍历,检查所有的 watcher 。Angular2 框架直接依赖 Zone.js 来实现变更检查。(阅读更多)
解释一下Angular中的依赖注入
这个很轻松就搭上了,服务模块需要使用@Injectable装饰器,其他模块需要在构造函数里声明。
jQuery中.on(click, …)和.click(…)的区别
当时我一脸蒙蔽,我之前从来没想到要比较这俩,所以就说没比较过,但两种方法都有使用过,感觉没什么区别。
正确答案:前者可以绑定多个事件。(阅读更多)
事件委托:100个行都要有点击事件
XSS攻击中不想编码转义的解决办法
当时没答上来…只说了白名单机制,只过滤脚本的部分,但面试官接着问,如果我想还原脚本呢?或者这个脚本并不是恶意脚本呢?一时语塞……
正确答案:应该要说内容安全策略(CSP),它可以规避不可信来源的脚本,同时禁止eval()函数等,这样恶意脚本就不会被执行。
页面过大时如何分块传输?(chunk)
PWA的原理,以及缓存数据的过期时间
有听说过deferred吗?
完全没听说过,也许是自己项目经验太少吧……
正确答案:deferred对象就是jQuery的回调函数解决方案。(阅读更多)
先写这么多吧,感觉面试不是面基础知识,而是问一些实际操作上的解决办法。这方面经验不是很足,有些甚至是不求甚解,所以导致面试尿崩的情况。这次要吸取教训,明天还要去百度面试,争取表现出一个完美的自己。
发表回复