腾讯前端二面凉凉

我就普通的投了个腾讯SNG,意向城市还填的北京,怎么就被深圳IMWeb捞起来了呢?

一面 8.27

晚上九点多突然袭击。问的都是基础,问的比较多的是XSS和CSRF。
然后又约了29号在线编程,用QQ共享屏幕在本地写代码,可以chrome调试,出了两道题

  1. 大数相加
  2. 页面内有一个正方形元素A以及一个待放置区域B,实现对其拖拽和放下到B区域内,并且改变B区域背景颜色(不可用html5原生事件)。

难度不大,应付过去了

二面 8.30

二面整了一个多小时,从来没面试这么长时间,做了4道编程题,表现来看应该是凉了。

自我介绍后问了一下怎么学的前端,看了什么书,然后就是做题

  1. 写一个三栏布局

我一开始拿float写了,简直是坑自己。一开始宽度没加border-box, 把右边那一栏挤到下面去了。加上之后右边栏还在下面,又把中间那一栏放到后面。然后又忘了加clearfix被面试官指出来了。

然后面试官让把中间栏放前面,想了想说不会写。然后又问还能怎么写,又用flex写了一遍。然后问了flex-growflwx-shrink的作用,它们的默认值是什么。默认值忘了,被跳过。

  1. 创建一个 Person 类,其包含公有属性 name 和私有属性 age 以及公有方法 setAge ;创建一个 Teacher 类,使其继承 Person ,并包含私有属性 studentCount 和私有方法 setStudentCount 。

没看懂公有属性和私有属性啥意思。我还问了JS没有公有私有的语法吧。然后就把共有属性那些都放prototype里了。被怼说这都是你那本红宝书里着重大篇幅讲过的,可见你面向对象用的就不熟练。

面试完查了一下,私有属性就是用闭包定义在构造函数里的局部变量。这几个名词整的真是玄,还有共享属性和静态属性。您稍微提醒一下闭包我不就会了嘛。参考代码:

function Person(name) {
  var age
  this.setAge = function(value) {
    age = value
  }
  this.getAge = function() {
    return age
  }
  this.name = name
}

function Teacher(name) {
  Person.call(this, name)
  var studentCount
  this.setStudentCount = function(value) {
    studentCount = value
  }
  this.getStudentCount = function() {
    return studentCount
  }
}
Teacher.prototype = Object.create(Person.prototype)
Teacher.prototype.constructor = Teacher
  1. 请写一个函数,计算一篇英文文章中出现次数最多的单词及出现次数。

这道题用正则表达式分割然后计数,最后面试官说做的不错,参考代码

function mostFrequentWord(str) {
  let count = {}
  let words = str.split(/\W+/)
  let max = 0
  let result = []
  words.forEach(word => {
    count[word] = count.hasOwnProperty(word) ? count[word]+1 : 1;
    if (count[word] > max) {
      max = count[word]
      result = [word]
    } else if (count[word] === max) {
      result.push(word)
    }
  })
  return {words: result, count: max}
}
  1. 最后说出个正则表达式吧。在页面里通过 js 如何判断页面是否属于腾讯(qq.com,包括子域名)?
function isTecent() {
  let origin = location.origin
  return /^https?:\/\/([^\.]*\.)?qq\.com$/.test(origin)
}

一开始写了个location.domain(VSCode自动提示的锅),被提醒location没有domain属性吧。

然后正则表达式没加括号,写成了/^http[s]?:\/\/[^\.]*\.qq\.com$/,被提醒用qq.com试一下,而且那个s不用加方括号。

最后又问你学校在北京,我们部门在深圳,能不能来实习,最好还是能来实习。

最后面试官总结了一下,CSS和面向对象太薄弱,算法和正则还好,HTML/CSS这块希望的是写出来效果就差不多了,最多微调一下,而我是像瞎猜一样折腾半天,优点缺点都特别明显,就拜拜了。


说还有三面,看来没凉透。。。

你可能感兴趣的:(腾讯前端二面凉凉)