2024-8-26 美团一面

隔了一天写的,可能有些忘了

问题

  • 自我介绍 提到了 iframe 和微前端,展开说说 iframe 的问题、胃前端沙箱、如何解决卡顿jsb 展开,怎么实现,如何处理版本降级
  • 进程和线程
  • tcp 三次握手
  • 了解哪些设计模式
  • vue 组件通信
  • 浏览器存储
  • 事件循环输出题目
setTimeout(function () {
  console.log(1)
}, 1000)
new Promise(function executor(resolve) {
  console.log(2)
  for (var i = 0; i < 10000; i++) {
    i == 9999 && resolve()
  }
  console.log(3)
}).then(function () {
  console.log(4)
})
console.log(5)

  • 手写发布订阅模式
class PubSub {
	constructor() {
    this.sub={}
	}
	const on = (event, fn) => {
    if(!this.sub?.[event])return
    if(this.sub[event]){
      this.sub[event].push(fn)
    }else{
      this.sub[event] = [fn]
    }
	}

	const emit = (event, data) => {
    if(!this.sub?.[event])return
    for(let task of this.sub[event]){
      task(data)
    }
	}
	const unSub = (event, fn) => {
    if(!this.sub?.[event])return
    this.sub[event]=this.sub[event].filter(item => item!==fn)
	}
}

const pubsub = new PubSub()

pubsub.on('event', (data) => {

	console.log('event:' + JSON.stringify(data));

})

pubsub.emit('event', { a: 1 });


  • 手写 node 数组转 dom 字符串
type DocNode = {

	type: 'link' | 'text' | 'image' | 'break' | 'division'

	children: DocNode[] | string

	properties: any

}

const map = {
  link: 'a',
  text: 'span',
  image: 'img'
  break: 'br',
  division: 'div'
}

function renderToHTML(nodes: DocNode[]): string {
  let res = ''

  for(const node of nodes){
    if(node.type === 'break'){
      res+='<br />'
      continue
    }
    let str = ''
    str+= '<'
    str+= map[node.type]
    // object
    if(node.properties){
      let tempStr = Object.entries(node.properties).map(([key,val])=>` ${key}="${val}"`).join('')
      str+= tempStr
    }
    str+= '>'
    if(typeof node.children === 'string')str+=node.children
    else str+=renderToHTML(node.children)
    str+=`<${map[node.type]} />`
    res += str
  }

  return res

	// return ''

}

// <span>1234</span><div><img src="" /><br /><a href="">link</a></div>

  • 几道手写没有真跑,有思路就算过了

反问

  • 负责业务 it 赋能,面向商家,60 多个人,大前端,在成都
  • 工作强度 正常 8 ~ 9 可以下班
  • 成都生活怎么样 吃辣的话挺舒服,比北京舒服点
全部评论
佬啥部门啊
点赞 回复 分享
发布于 2024-08-27 19:50 上海
佬,这种手写题怎么学的啊?
点赞 回复 分享
发布于 2024-08-30 00:47 重庆

相关推荐

美团-财务科技-前端实习base成都官网1-13上午投递,下午约面试时间1-17晚上8点一面,是一个女面试官。基本是实习和项目,八股就问了react特性,hooks手撕排序,要求不能更改原数组,写了个冒泡堆排序说思路(嘴太笨了,最后写了个代码才解释清楚)嵌套数组获取最大深度(用栈实现,说思路就行)面完5分钟后约二面1-20下午两点二面,应该是部门主管。也是问的实习和项目,无手撕,不过面试官应该不是写前端的,很多东西都在问设计思想和架构设计,有点汗流浃背几个印象比较深的:1.&nbsp;如果让你去负责你实习项目从0到1的搭建,你会怎样从架构上设计这个项目,难点有哪些2.&nbsp;你觉得前端和后端难点分别在哪;如果让你去设计一个excel你会怎么设计(难绷),可能是看我答不出来,换了个问题。你觉得前端除了页面渲染,ui交互,有哪些工程化的东西,答了webpack、vite,以及服务端渲染等3.&nbsp;ai会替代程序员吗美团实习面试整体体验下来很不错,面试官基本都是按照简历提问,不会的地方也会说没事。实习和项目问了绝大部分,八股很少(可惜我还背了那么久)反思:1.&nbsp;面试的时候太紧张了,很多问题没想好就开始说,一面面试官也提了这个问题,可以想好再回答2.&nbsp;实习的项目其实有很多深挖的点可以去说的,但是简历上写的很简单,面试官问细节的时候,没有一个合适的切入点去展开讲,后面再重新整理一下实习项目下午6点已OC,化身团孝子
查看5道真题和解析
点赞 评论 收藏
分享
评论
3
13
分享

创作者周榜

更多
牛客网
牛客企业服务