阿里钉钉前端开发一面凉经

首先钉钉的面试官实在是非常耐心,整场面了一个半小时,比起面试更像是在给我上课

原本约的周一晚上八点半的,面试官临时有事于是安排到周二晚上九点半。

说是面试其实由于自己菜鸡的原因就问了三道,顺便知道了面试官属于的是阿里钉钉的文档部门(应该是这样交的),比起使用框架更加重视原生js的交互实现,因此在基础考察上很详细。

  1. 虽然是电话面试但是开了视频手撕。实现函数parseCoord,给定Excel单元格字符串,输出对应的行列值。
  2. 重绘重排的原理,如果DOM下100个节点更新那会重排100次吗?
  3. https使用的是ssl协议,如果服务端分发公钥,浏览器端使用私钥解密会话密钥会不会不安全?为什么?(说实话我是也记不清当时脑子已经一团浆糊了)
//评测题目: 无
// 题目
// 实现函数parseCoord,给定Excel单元格字符串,输出对应的行列值。
// 输入输出样例
// 样例一
// 输入:parseCoord('A1')
// 输出:{ col: 1, row: 1 }
// 样例二
// 输入:parseCoord('AB123')
// 输出:{ col: 28, row: 123 }

// 'AB123' -> { colStr: 'AB', rowStr: '123' }
// -> 'AB' -> 28
// A: 1
// Z: 26
// AA: 27
// AB: 28
// ...
// AZ: 52
// BA: 53
// ...
// ZZ: 26^2 + 26 = 26^1 * 26 + 26^0 * 26
// AAA: 26^2 * 1 + 26 * 1 + 1
// ABA: AAA + 26
// ABC: ABA + 2 = AAA + 26 + 2 = 26^2 * 1(A) + 26 * 2(B) + 3(C)
function transferAlpha(alpha) {
  let arr = alpha.split("")
  let result = 0
  for (let i=arr.length-1;i>=0;i--) {
      result += transfer(arr[i])*Math.pow(26,(arr.length-1-i))
  }
  return result
}
function transfer(al) {
  return al.charCodeAt(0)-64
}
function parseCoord(str) {
  const m = str.match(/(^[A-Z]+)([0-9]+$)/);
      if(m === null){
        return false
    }

  const [, alpha, num] = m;

    const obj = {
        col : transferAlpha(alpha),
          row : parseInt(num)
    }

    return obj
}

总之,就是自己太菜还有对部门的不了解,复习上要更加针对对方的事务范围更好。

#阿里巴巴##面经##前端工程师##校招#
全部评论
3 回复
分享
发布于 2020-02-21 21:59
为啥三个问题面了一个半小时。。。。
点赞 回复
分享
发布于 2019-08-06 23:14
微众银行
校招火热招聘中
官网直投
使用钉钉面试可以打代码么
点赞 回复
分享
发布于 2019-08-07 07:21
加油,还没凉的
点赞 回复
分享
发布于 2019-08-07 09:29

相关推荐

5 48 评论
分享
牛客网
牛客企业服务