百度前端面试经验之程序题
2016-09-24 11:02
204 查看
前两天百度面试过程中,被问到一个程序,当时没写出来。现在记录一下:
首先,面试官让写一个程序,实现:
当时,一下想到的就是return一个function,function中在return加的结果,于是拿笔刷刷开写:
写完之后还在想,只需要三行就能搞定的程序,不太像百度这种大公司的风格。再确定了一下,应该没问题。于是把代码递给了面试小哥。面试小哥一看,嘴角轻微地短暂到不太容易让人注意到的上扬了一个小角度。面试时候出现这种“微笑”的时候往往意味着“小样,我倒要看看你有什么能耐”。
果然,面试小哥接着说:“如果你这样做的话,如果我要实现add(1)(2)(3)(4)(5)呢?”。果不其然,这感觉有点百度的风格了。当时就蒙圈了,平时只做过两个参数的,这么多的还真没研究过。没办法,硬着头皮想呗:“这里应该考的是闭包,反复调用应该要用到递归,这应该。。。”憋了半天没出来,还一直期待会有那么一秒我的小宇宙能爆发。无奈的是,最后只憋出了几滴汗。
面试官见这么久没反应,好意来提示一下,这里需要用到闭包。我点点头,看来我猜对了,可是猜对了又不加分。又过了几分钟,还是没结果,面试小哥又提示到,反复调用是不是要用到递归呢,果然又猜对了,可是还是不加分。
无奈掉坑里,自己太矮,面试小哥想拉也拉不到,最后还是没弄出来。然后就接着聊其他的话题了。所以说还是要提高自己的能力。出来查找了一下资料,才明白应该这样写:
另外,我们还能看到的一个与之类似的题目就是拼接单词,如下:
这个题目没做出来,面试小哥就开始问实习项目,在谈项目的时候开始切入点问:
1、问了get和post的不同,这个比较简单,然后接着问了使用get方式时需要注意哪些问题,答了安全性和参数大小以及参数特殊字符的编码,答完一个面试官就接着问还有呢,三个之后实在想不出来了,估计还没答到面试官想要的答案上。
2、第二个问怎么从URL中取出每一个参数,截取参数想到的就是indexOf以及split,可是面试官好像也还不太满意,最后说是要用正则。无奈平时用正则不多,只有在用到的时候才会去搜一下。
3、最后实现一个三列布局,左右固定,中间自适应。这个比较经典,可以用绝对定位,也可以用弹性盒子:flex。
然后还有一些细节的东西,问得深一点就卡住了。只怪自己能力还不行,就当是积累积累面试经验吧。
首先,面试官让写一个程序,实现:
console.log(add(1)(3)); // 3
当时,一下想到的就是return一个function,function中在return加的结果,于是拿笔刷刷开写:
function add(e1){ return function(e2){ return e1+e2; } } console.log(add(1)(2));
写完之后还在想,只需要三行就能搞定的程序,不太像百度这种大公司的风格。再确定了一下,应该没问题。于是把代码递给了面试小哥。面试小哥一看,嘴角轻微地短暂到不太容易让人注意到的上扬了一个小角度。面试时候出现这种“微笑”的时候往往意味着“小样,我倒要看看你有什么能耐”。
果然,面试小哥接着说:“如果你这样做的话,如果我要实现add(1)(2)(3)(4)(5)呢?”。果不其然,这感觉有点百度的风格了。当时就蒙圈了,平时只做过两个参数的,这么多的还真没研究过。没办法,硬着头皮想呗:“这里应该考的是闭包,反复调用应该要用到递归,这应该。。。”憋了半天没出来,还一直期待会有那么一秒我的小宇宙能爆发。无奈的是,最后只憋出了几滴汗。
面试官见这么久没反应,好意来提示一下,这里需要用到闭包。我点点头,看来我猜对了,可是猜对了又不加分。又过了几分钟,还是没结果,面试小哥又提示到,反复调用是不是要用到递归呢,果然又猜对了,可是还是不加分。
无奈掉坑里,自己太矮,面试小哥想拉也拉不到,最后还是没弄出来。然后就接着聊其他的话题了。所以说还是要提高自己的能力。出来查找了一下资料,才明白应该这样写:
function myadd(e1){ function add(e2){ e1 = e1+e2; return add; }; add.toString = add.valueOf = function(){return e1;}; return add; } console.log(myadd(1)(2)(3)(4)(5));
另外,我们还能看到的一个与之类似的题目就是拼接单词,如下:
function myadd(e1){ function add(e2){ e1 = e1+", "+e2; return add; }; add.toString = add.valueOf = function(){return e1;}; return add; } console.log(myadd("hello")("world")("welcome")("to")("my")("blog").toString()); // hello, world, welcome, to, my, blog
这个题目没做出来,面试小哥就开始问实习项目,在谈项目的时候开始切入点问:
1、问了get和post的不同,这个比较简单,然后接着问了使用get方式时需要注意哪些问题,答了安全性和参数大小以及参数特殊字符的编码,答完一个面试官就接着问还有呢,三个之后实在想不出来了,估计还没答到面试官想要的答案上。
2、第二个问怎么从URL中取出每一个参数,截取参数想到的就是indexOf以及split,可是面试官好像也还不太满意,最后说是要用正则。无奈平时用正则不多,只有在用到的时候才会去搜一下。
3、最后实现一个三列布局,左右固定,中间自适应。这个比较经典,可以用绝对定位,也可以用弹性盒子:flex。
然后还有一些细节的东西,问得深一点就卡住了。只怪自己能力还不行,就当是积累积累面试经验吧。
相关文章推荐
- 房产界已上市和IPO路上的难兄难弟:房天下与房多多
- 利用百度地图提供的API做的应用
- 搜狗百度360市值齐跌:搜索引擎们陷入集体焦虑?
- 百度20年:搜索帝国的崛起、式微与重生
- 小白观察:Google 开始清除百度旗下公司开发的 46 款应用程序
- html5 web数据存储
- SEO
- 异步流程控制:7 行代码学会 co 模块
- [译] React 入门
- 如何优雅处理前端异常?
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- 百度全面恢复网站权重,流量暴涨中
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- 软件测试面试如何测试一个杯子
- 百度工程师讲PHP函数的实现原理及性能分析(一)
- C#使用ImitateLogin模拟登录百度
- C#常见算法面试题小结
- 百度 popup.js 完美修正版非常的不错 脚本之家推荐