美团视频一面面经-前端方向

热腾腾的美团面经。
一上来面试官就让我介绍下我做的项目。我介绍了之后,就没有然后了(当时我以为会深问)。
然后就是编程了。
1.经典的柯里化问题。编写一个函数,实现add(2)(3)。
2.作用域问题。
var length = 10;
function fn() {
console.log(this.length);
}
var obj = {
length: 5,
method: function(fn) {
fn();
arguments[0]();
}
};

obj.method(fn, 1);
问会输出什么?这个我回答的不好,但是面试官说(⊙v⊙)嗯,也没给我纠错。哎╮(╯▽╰)╭
3.第三个是输出<body>下面的四个<a>标签对应的索引。这个也总结过,但是写的时候有瑕疵,哎╮(╯▽╰)╭
4.用2到3行写出二维数组变成一维数组的函数。
我的思路是用slice接口把数组中的一位数字切出来,然后拼接concat下一位数字。有好的思路,留言哈
然后编程就结束了。其中最主要的是楼主没用过牛客网上的JavaScript(node 0.12.12)编程过,所以全程就相当于是在纸上写代码。会了就不会犯这么多低级错误了。(磕墙……)
之后问了一些问题。
1.三列布局怎么实现啊,都有哪些方法。
2.flex布局了解吗?
3.最近在看什么新技术?
4.看过哪些博客逛过哪些论坛?
5.怎么学习前端的?
6.你觉得自己还有哪些优点。
然后让我等通知,可能后续会有面试官联系我。现在好忐忑啊,不知道会不会有二面。
面试中的时候感觉答的还不错,面完下来检测下,我晕+_+,这么多都不对……接着努力吧~
发个面经,攒人品~~~

#美团#
全部评论
扁平化数组一般用concat 如果都是数字的话可以用tostring然后split
点赞 回复 分享
发布于 2017-09-06 00:33
两个小思路: let arr = [1,2,3,[1,2,3],[2,[3,4],3]] function flatteningToArr1(arr) { let str = JSON.stringify(arr) let matchReg = /[\[\]]/g function replaceHandle(p, offset) { if (offset != 0 && offset != str.length - 1) return '' else return p } return JSON.parse(str.replace(matchReg, replaceHandle)) } function flatteningToArr2(data) { let ans = [] return function f1(arr) { arr.forEach(ele => { if (ele instanceof Array) { f1(ele) } else { ans.push(ele) } }) return ans }(data) } console.log(flatteningToArr1(arr)) console.log(flatteningToArr2(arr))
点赞 回复 分享
发布于 2017-09-06 00:00
/* 利用apply和concat转换 */ function reduceArr(arr) { return Array.prototype.concat.apply([], arr); // return [].concat.apply([], arr); } /* 使用 reduce */ function reduceArr(arr) { return arr.reduce(function(pre, currentValue) { return pre.concat(currentValue) }, []) } /* ES6 的展开运算符 */ function reduceArr(arr) { return [].concat(...arr) } 第四个问题,看了面经,搜索整理出来的几个。第三个题是什么意思?没太懂
点赞 回复 分享
发布于 2017-09-05 22:23
索引那个怎么写啊
点赞 回复 分享
发布于 2017-09-06 12:26
你是男生吗  为啥问题这么难
点赞 回复 分享
发布于 2017-09-06 10:35
arguments[0](); 这个为什么会打印 2?没搞懂
点赞 回复 分享
发布于 2017-09-05 21:10
简单实现下二维数组转化成一维数组的题目: function change(arr){ return arr.reduce(function(i,j){ return i.concat(j); }) } 哈哈 超过了三行...
点赞 回复 分享
发布于 2017-09-05 20:41
是笔试过了的面试?
点赞 回复 分享
发布于 2017-09-05 20:34
上海,9.1面的。。前端。。至今没下位
点赞 回复 分享
发布于 2017-09-05 20:26
现场面么?
点赞 回复 分享
发布于 2017-09-05 20:12
是上海的吗
点赞 回复 分享
发布于 2017-09-05 20:05

相关推荐

09-05 10:23
已编辑
北京邮电大学 Web前端
淘宝交易前端1.自我介绍2.介绍实习和项目3.http和https本身有什么区别,混用有什么风险?4.跨域问题答:&nbsp;在&nbsp;webpack.config.js&nbsp;的&nbsp;devServer&nbsp;中添加&nbsp;proxy&nbsp;配置,指定目标服务器地址,可设置&nbsp;pathRewrite&nbsp;重写路径,或&nbsp;changeOrigin&nbsp;模拟同源请求。或后端配置&nbsp;CORS&nbsp;允许指定源访问;使用代理服务器转发请求(Webpack&nbsp;Dev&nbsp;Server)。简单场景可用&nbsp;JSONP(仅支持&nbsp;GET)。5.proxy是本地开发环境使用的,项目上线了呢?(1)后端配置&nbsp;CORS(推荐)(2)服务器层代理(如&nbsp;Nginx、Apache)6.一个html页面里,监听一个元素是否滚动到了页面中可视位置?(1)Intersection&nbsp;Observer&nbsp;API&nbsp;实现(2)监听&nbsp;window&nbsp;的&nbsp;scroll&nbsp;事件,获取元素的&nbsp;getBoundingClientRect&nbsp;(),得到其&nbsp;top、bottom&nbsp;等位置信息,再与视口高度比较。7.scroll判断滚动方向是向上滚还是向下滚?答:监听&nbsp;window&nbsp;的&nbsp;scroll&nbsp;事件,在回调中获取当前&nbsp;scrollTop,与之前存储的值比较,当前值大则为向下滚,反之向上滚,最后更新历史值。8.space-between和space-around在布局上有什么区别?答:实际开发中,space-between适合需要元素贴边且均匀分布的场景,space-around适合需要整体居中且两侧有留白的布局。9.flex:1&nbsp;是哪几个属性的合并?flex:1&nbsp;是&nbsp;flex-grow、flex-shrink&nbsp;和&nbsp;flex-basis&nbsp;三个属性的简写形式,等价于&nbsp;flex:&nbsp;1&nbsp;1&nbsp;0%。这种简写在实际开发中很常用,比如在分栏布局中,给多个子元素设置&nbsp;flex:1,可实现等宽分配父容器空间。
查看9道真题和解析
点赞 评论 收藏
分享
评论
点赞
48
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务