【面试】字节外包一面

1,485 阅读3分钟

前言

介绍下自我情况~ 23届双非本科毕业,一年工作经验,上一份工作在一家物联网小厂,个人技术栈 vue3 react ts electron

面试时间: 2024-1-22 base深圳

面试题

1.自我介绍 5mins

2.项目经历提问 15mins - 仔细问了一个AI项目

3.八股 30mins

1.移动端屏幕适配:媒体查询、rem、em
    除了以上三种,还要补充 vw/vh 和 百分比
    
2.rem和em的区别
    rem参考系是根元素html,em参考系是父元素
    
3.rem的根元素是谁?(没答出来,我说body,他说上面还有一层)
    html
   
4.rem对于宽高margin、padding都能用吗?我说padding不能
    这里估计是面试官在试我,都是能用的
    
5.想使用rem,设置根元素的话要在外面设置什么属性?不会 --------做记号-----!!
    要在html节点上设置 font-size 作为参考属性
    此时可以加入前端工程化知识:使用 post-css 插件目前已经能够自动将px转rem了
 
6.讲讲position的所有属性?inherit不知道
    查了下 inherit 其实就如他的名字,是继承他的父元素position,没有什么实际作用
    
7.组件库pop-up的层级和显示位置问题?
    pop-up大部分是用绝对定位实现的,这就导致,如果将他包裹在相对定位的元素下时,可能有出现位置不正确的问题,因此此时要放在最外层去。
    关于层级,有时会被盖住,解决方案也是放在最外层

8.z-index可以解决刚才的问题吗?
    这个问的比较细了,z-index常常出现失效的问题,参考链接 
    https://editor.csdn.net/md/?articleId=124311224
    
9.vue和react都有路由管理,他们有两种方式,分别介绍下?
    hash和history:
     1.hash通过hashChange监听路由变化,history通过原生api监听url路径变化
     2.hash带#,history不带。
     3.history常用于SPA单页面应用
     
10.history模式下,用户直接访问子页面会怎么样?  --------- 做记号 -------!!
    这里需要后端nginx做一下资源重定向,将所有的子页面都定向到前端的资源入口,这样就能稳定返回前端资源了,否则会404;
    那么直接访问子页面,此时前端是在首页还是在子页面呢?
    是在子页面,路由管理器自动拦截了,所有的路由都交由前端管理,不会出现监听不到的现象。
    
11.文本省略?

12.多行文本省略?
  1. js代码输出题 5mins
// 1
console.log(a);
var a = 10;
console.log(a);

// 2
console.log(a);
const a = 10;
console.log(a);

// 3
function foo() {
    console.log(a);
}
var a = 10;
foo();   // 10
  1. 编程题 15mins
0.1+0.2=0.30000000000000004,原因和解决方案?不会
    原因是浮点数计算精度不准确,许多语言都会出现。解决方案是toFixed()
    
数组扁平化(递归)
    一个递归秒了

总结

初面还是简单的,甚至重心放在了CSS~,我注意到面试官其实是有看着电脑屏幕来问题目的,说明题目可能来自内部题库或网上八股题库~

  1. 在js代码输出第三题我第一次答错了,还是经过提醒才纠正过来,这反映出我对js的复杂情况分析较为薄弱,可能需要刷些复杂的代码输出题
  2. 编程题中,这里的递归其实非常基础,但我没能秒出来,反映出我对递归算法仍不够熟悉,要把递归模板记熟用熟才行

字节外包虽然享有字节的所有福利,但被字节的朋友要求千万不要去,或许是会毁简历或是其他考虑,总之还是当做面试的锻炼吧~

二面在 2024-1-26,等我面经~