前几天完成了shopee的前端二面,然后今天想到来回顾一下这次面试
面试官这次主要问了技术问题和场景问题:
1.做了自我介绍,聊了一下项目
2.[]==![]返回true或者false,这个我因为我之前没有见过,分析一顿分析成了false🤣🤣🤣,场面一度很尴尬
然后这道题就过掉了
3.手写代码题,实现一个compose函数,(写了两遍才写对)
题目:
实现 JS 函数式编程中的 compose 函数(可接收多个 function 用于组合,执行顺序从右到左,前函数的执行结果作为后函数的入参)
const greeting = (first, last) => `hello ${first} ${last}!`
const toUpper = str => str.toUpperCase()
const split = str => str.split(' ')
const fn = compose(split, toUpper, greeting)
console.log(fn('Shopee', 'Team'));
// 执行后,打印 [ 'HELLO', 'SHOPEE', 'TEAM!' ]
const greeting = (first, last) => `hello ${first} ${last}!`
const toUpper = str => str.toUpperCase()
const split = str => str.split(' ')
const fn = compose(split, toUpper, greeting)
console.log(fn('Shopee', 'Team'));
// 执行后,打印 [ 'HELLO', 'SHOPEE', 'TEAM!' ]
实现:
let compose = function(...args){ let len = args.length; let count = len-1; return function f1(...s){ let res = args[count].apply(this, s); if(count<=0){ return res; }else{ count--; return f1.call(null, res); } return res; } } const greeting = (first, last) => `hello ${first} ${last}!` const toUpper = str => str.toUpperCase() const split = str => str.split(' ') const fn = compose(split, toUpper, greeting) console.log(fn('Shopee', 'Team'));然后就没有技术问题了,就是一些场景题目,比如老大分配给你的任务达不到他要求的期望怎么办等等,还有问了一下为什么选择前端,这样子
反问:问了一下前端有什么需要补足的地方,说基础不是很好,还要加强基础😶😶😶
大概就是这样,还没收到二面结果,许愿一个HR面,大家也加油
全部评论
(7) 回帖