前言
介绍下自我情况~ 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.多行文本省略?
- 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
- 编程题
15mins
0.1+0.2=0.30000000000000004,原因和解决方案?不会
原因是浮点数计算精度不准确,许多语言都会出现。解决方案是toFixed()
数组扁平化(递归)
一个递归秒了
总结
初面还是简单的,甚至重心放在了CSS~,我注意到面试官其实是有看着电脑屏幕来问题目的,说明题目可能来自内部题库或网上八股题库~
- 在js代码输出第三题我第一次答错了,还是经过提醒才纠正过来,这反映出我对js的复杂情况分析较为薄弱,可能需要刷些复杂的代码输出题
- 编程题中,这里的递归其实非常基础,但我没能秒出来,反映出我对递归算法仍不够熟悉,要把递归模板记熟用熟才行
字节外包虽然享有字节的所有福利,但被字节的朋友要求千万不要去,或许是会毁简历或是其他考虑,总之还是当做面试的锻炼吧~
二面在 2024-1-26,等我面经~