1、实现垂直居中的方法
答:定位top+位移translate 和 flex布局
被问还有其他方法吗,回答不知道。
方法有:
(1)父元素 display: table-cell; + vertical-align:middle
前提子元素是行内块元素, display:inline-block
(2)display: flex; flex布局
align-items:center;
(3)已知父元素高度时,子元素直接 transform 平移到中间。
(4)子绝父相 + top:50%; + transform:translateX(-50%);
(5)子绝父相 + top:50%; + margin-top:-自身高度的一般
(6)子绝父相 + 子元素的top...四个方向都为0 + margin: auto;
2、动画效果的实现方法
只回答出了 @keyframes + animation
方法:
(1)js直接实现,通过 setInterval 方法的回调函数来持续调用改变某个元素的CSS样式,以达到元素样式变化的效果。
(2)SVG元素,内部的元素属性控制动画效果,如 set、animate、animateTransform等。
(3)CSS3 的 transition + transform
(4)CSS3 的 @keyframes + animation
(5)H5新增元素 canvas,在 js 中使用 web API 的方法绘制(也用了setInterval )。
3、自己做的项目,有趣的点,有意义的点
当时只做过静态页面,其他都没有完整的前端项目。
项目上写的是在实验室做的算法类的项目,简单讲了一下。
4、自学的方式
答:看网上的资料、大神的博客。
结果被问哪些博客,就只想的起来 阮一峰。。连看书都没说,太菜了
个人博客:张鑫旭、阮一峰、廖雪峰、汤姆大叔-博客园
网站:慕课、MDN、W3school
书:《JavaScript高级程序设计》(红宝石)、《JavaScript描述》(刺猬)
程序题
1、程序执行的结果,输出什么?
答:fun1 输出 A,fun2 输出 B。
延伸出了:this 指向问题。
其实还有闭包、作用域链?现在还不是很确定。
实际:fun1输出 B ,fun2输出 A。 fun1直接执行 logName,this指向的是window;fun2是通过对象调用logName,this指向的obj。
2、数组去重
面之前都准备了这题,第三种想写先排序再去重来着,结果忘记了。。自爆了
function unique (arr) {
var res = [];
var before;
var sorted = arr.sort();
for (var i=0; i<sorted.length; i++) {
if (i==0 || sorted[i]!=before) {
res.posh(sorted[i]);
before = sorted[i];
}
}
return res;
}
3、先讲一下思路,然后写出来,最后怎么优化?
据说是剑指offer的经典题,但是完全没刷题,完全靠直觉在猜。
还问复杂度是多少,我都不记得复杂度怎么算了,想哭55555
(当时大概被引导想出了思路,但是看看写的是什么辣鸡。。)
分析:在卖出价固定时,买入价越低获得的利润越大。也就是说,如果在扫描到数组中的第 i 个数字时,只要我们能够记住之前的 i-1个数字中的最小值,就能算出在当前价位卖出时可能得到的最大利润。
如果当前价格小于最小值,就保存作为最小值;如果大于最小值,就将当前值与最小值做差,如果大于最大利润,则更新最大利润。遍历结束后,得到最大利润。
function maxProfit (prices) {
var min = prices[0]; //初始最小值
var MaxProfit = 0; //初始最大利润
for (var i=1; i<prices.length; i++) {
if (prices[i]<min) {
min = prices[i];
}else {
MaxProfit = Math.max(MaxProfit, prices[i]-min)
}
}
return MaxProfit;
}
时间复杂度为O(n):n 为价格数组的长度;
空间复杂度为O(1):定义在循环外面的变量(min)的空间。
有什么问题问面试官?
(1)给我的建议
去学框架,看框架源码。
(2)业务类型
基础技术组 :做框架组件;
业务组 :贴近工程业务。
(3)什么时候有回复
结束后跟hr说了之后,hr回复我。
(潜台词:你凉了)
总结:前端面试的第一次献给了字节。一月初在牛客投的简历,一直没有音讯,一月末都放假回家了突然接到电话。
字节真的是名副其实的重视算法,前端还考好几个算法题。面试官很nice,对于我这水平都完全没有不耐烦,还引导我去思考。总而言之是自己太菜了,前面偷懒一直没去做前端项目,以为学点基础就差不多了,结果就是可想而知的啦。
但是给我机会体验了面试的感觉,积累经验,还是很不错的。
加油,offer会有的!