牛客-字节跳动-抖音电商

 

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会有的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值