首页 > 58同城前端一面二面+hr面
头像
我人很好
编辑于 2020-09-21 09:26
+ 关注

58同城前端一面二面+hr面

 8.31的笔试,9.1通知面试,9.2十二点一面,下午四点二面。

一面

  • 自我介绍
  • 将对象序列化为字符串
    //{ a: 1, b: 2} => 'a=1&b=2'
    function stringify(obj) {
      let res = Object.keys(obj).map((key) => {
          return key + '=' + obj[key];
      });
      return res.join('&');
    };
  • 计算n个数的和,每请求一个url获得一个加数,最后返回n个数的和
    //因为我说ajax的具体使用记不清了,所以异步请求部分只写了伪代码
    function sum(...urls) {
      let arr = urls.map((url) => {
          return new Promise((resolve, reject) => {
              ajax(url).onload = function (val) {
                  resolve(val);
              };
          });
      });
      let res = 0;
      Promise.all(arr).then((vals) => {
          vals.forEach((v) => res += v);
      });
      return res;
    }
  • 项目中最难忘/最满意的点

    二面

  • display: none和visibility: hidden的区别
  • HTTP状态码301 304
  • new Promise时传入的参数是什么?
  • 有多个请求,想等到所有请求都完成再进行后续操作,如何处理? --> Promise.all()
          只要有一个请求返回响应就进行后续操作,如何处理? --> Promise.race()
  • ES6中声明函数的方式
  • 箭头函数与普通函数的区别,箭头函数能否被call / apply / bind调用
  • Set和数组的区别
  • Object.getPrototypeOf(1)返回什么
  • Vue中data和computed的区别
  • localStorage
  • 'a=123;b=jack;c=true',解析成对象,且值为true/false的,转换成布尔类型
    const parse = (str) => {
    // TODO 
    str = str.split(';');
    let res = {};
    for (let i = 0; i < str.length; i++) {
      let kv = str[i].split('='), key = kv[0], val = kv[1];
      switch(val) {
        case 'true':
          res[key] = true;
          break;
        case 'false':
          res[key] = false;
          break;
        default: 
          res[key] = val;
      }; 
    };
    return res;
    }
     hr面更新,9.10hr面,感觉都是比较常规的问题,面了20分钟左右。

    hr面

  • 自我介绍
  • 介绍主要的项目经历
  • 你认为对前端来说最重要的是什么
  • 自己的弱势
  • 平时学习的途径
  • 面了几家 目前有没有offer
  • 能否提前实习
  • 接触前端的契机
  • 对公司和团队有什么设想
  • 反问环节

更多模拟面试

全部评论

(8) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐