分享一道简单的前端面试题

2016-12-20 17:29:17 +08:00
 Lothar
<ul id="list" class="foo">
  <li>#0</li>
  <li><span>#1</span></li>
  <li>#2</li>
  <li>#3</li>
  <li><ul><li>#4</li></ul></li>
  ...
  <li><a href="//v2ex.com">#99998</a></li>
  <li>#99999</li>
  <li>#100000</li>
</ul>

最近又来了个资深工程师面试,结果现场写代码环节写不出上面类似的题目。🌚

讲道理这题真的不难啊,就是简单的 DOM 操作,没有任何奇技淫巧,现场写:一台 MBP / 30 分钟 / 允许 Google ,只要基本功够扎实应该都能写出来吧。

其实现场考的版本比这个还简单,这个是为了发帖稍微整理后的版本,大家来喷一波。


(顺便补个广告,招前端,薪资对标阿里 P6 ,可年后入职,年前入职可以补偿年终奖,因为不是招聘结点我就不放邮箱了,有兴趣私我哈)

15747 次点击
所在节点    程序员
108 条回复
MrFireAwayH
2016-12-20 19:37:44 +08:00
@bramblex 活捉我家 Kevin 酱~
ljcarsenal
2016-12-20 19:40:42 +08:00
刚想看看是哪个公司 发现有前同事在你厂
lijsh
2016-12-20 19:59:35 +08:00
sofish 以前也发过一个笔试题,比这个更简单:

https://gist.github.com/sofish/3549460
lijsh
2016-12-20 20:00:10 +08:00
上面的题目是: js 中如何获得 <ul> 下的第一个 <li>
dxcqcv
2016-12-20 20:45:56 +08:00
第 3 道挺难的,我也超过时间了,果然还是技术不行

贴一波答案

```javascript
var u = document.querySelector('.foo');
u.classList.add('bar');
var li = u.querySelectorAll('li');
console.log(li.length);


li[9].parentNode.removeChild(li[9]);
var t = '&lt;v2ex.com />';
li[499].insertAdjacentHTML('afterend','<li>'+t+'</li>');

for(var i =0, l = li.length; i < l; i++) {
(function(i){

li[i].onclick =function(){

alert(i)
} ;
}(i))
}
```

最后贴个简历,(简历地址)[https://dxcqcv.github.io/resume/html/index.html], 楼主招不招中级前端,哈哈
otakustay
2016-12-20 20:46:41 +08:00
这题就是个应届生级别,有 querySelector 直接上 nth-child 没有就 for 一把的事情……
kisnows
2016-12-20 20:50:00 +08:00
P6 对应的是级别是 资深 呀。
那 P5 对应的是 高级 ?
wmc
2016-12-20 20:55:02 +08:00
校招题目都比这难了。。。😂
alvie
2016-12-20 21:22:21 +08:00
作为一个后端工程师表示都会做...
wly19960911
2016-12-20 22:10:58 +08:00
这难度几乎没有吧,考察了几个 dom 操作,上面说会超过时间我明天看看,不知道会不会超过时间,毕竟标签这么多,原来做过一个很垃圾的代码整个运行效率都被脱累过。。
byenow
2016-12-20 23:49:50 +08:00
@dxcqcv 中级前端不会给 500 个 DOM 绑定事件吧(逃
murmur
2016-12-20 23:53:43 +08:00
考点难道是 IE8/9 下不能直接删除元素必须先找到元素然后用父节点删子节点?
oglop
2016-12-21 00:57:10 +08:00
我觉得这道题的内涵在于测试面试者如何自举翻 wall 上 google
wdhwg001
2016-12-21 02:12:18 +08:00
内啥… V2EX 没有私信功能…
Lothar
2016-12-21 02:26:33 +08:00
@oglop 公司网络自带梯子哈
Lothar
2016-12-21 02:27:03 +08:00
@wdhwg001 感谢提醒 😂😂😂
skydiver
2016-12-21 02:37:45 +08:00
这题目我一个后端都会…
emric
2016-12-21 04:35:45 +08:00
题目不错, ie9+ 还算简单。

1. classList
2, 3. list.children or querySelector + css
4. 事件委托 + indexOf + 阻止冒泡
DWabo
2016-12-21 04:42:35 +08:00
我一个学了 2 个月的初级前端也能做出来。
justyy
2016-12-21 05:17:43 +08:00
可以 google 根本就不难。我记不住,但是我会用 google, 三两下就能找到答案。。
问题是 国内面试的时候 能上 google 么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/328943

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX