我就普通的投了个腾讯SNG,意向城市还填的北京,怎么就被深圳IMWeb捞起来了呢?
一面 8.27
晚上九点多突然袭击。问的都是基础,问的比较多的是XSS和CSRF。
然后又约了29号在线编程,用QQ共享屏幕在本地写代码,可以chrome调试,出了两道题
- 大数相加
- 页面内有一个正方形元素A以及一个待放置区域B,实现对其拖拽和放下到B区域内,并且改变B区域背景颜色(不可用html5原生事件)。
难度不大,应付过去了
二面 8.30
二面整了一个多小时,从来没面试这么长时间,做了4道编程题,表现来看应该是凉了。
自我介绍后问了一下怎么学的前端,看了什么书,然后就是做题
- 写一个三栏布局
我一开始拿float
写了,简直是坑自己。一开始宽度没加border-box
, 把右边那一栏挤到下面去了。加上之后右边栏还在下面,又把中间那一栏放到后面。然后又忘了加clearfix
被面试官指出来了。
然后面试官让把中间栏放前面,想了想说不会写。然后又问还能怎么写,又用flex
写了一遍。然后问了flex-grow
和flwx-shrink
的作用,它们的默认值是什么。默认值忘了,被跳过。
- 创建一个 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
- 请写一个函数,计算一篇英文文章中出现次数最多的单词及出现次数。
这道题用正则表达式分割然后计数,最后面试官说做的不错,参考代码
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}
}
- 最后说出个正则表达式吧。在页面里通过 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这块希望的是写出来效果就差不多了,最多微调一下,而我是像瞎猜一样折腾半天,优点缺点都特别明显,就拜拜了。
说还有三面,看来没凉透。。。