对象篇
模块化编程-自研模块加载器
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
- UDP & TCP 说说两者的区别
- 怎么判断这个包是UDP还是TCP
- 说说HTTPS原理
- 说说什么时候必须使用ETag
- 浏览器缓存,说说都有哪些方法?
- 二叉树左侧看
二面
- 自我介绍
- 说说虚拟DOM和原始DOM相比的优缺点
- 根据svelte框架,类比一下你还能说出什么缺点嘛?
- BFC是什么?
- 什么情况下使用BFC
- 该怎么触发BFC
- 移动端适配
- rem 和 em 的区别
- Vuex用过modules吧,说说A文件内的actions怎么修改B的state
- TypeScript变量后面加上感叹号什么意思
- 类型断言的方法
- 异步
- 大概写下Promise.all的原理吧
三面
- 自我介绍
- 重点项目介绍,难点挑战
- 权限控制方案,怎么实现的,整体的思路如何
- 模块化是怎么划分的,具体做过哪些
- 提出了一个输入框远程搜索提示的功能
- 说说版本是怎么迭代的
面试准备
校招 -1 年,这个阶段还属于成长期,面试时更需要看重的是你的基础和热情。对于 JS 基础,计算机基础,网络通信,算法等部分的要求会相对高一些。毕竟这个阶段比较难考察你的业务项目中的沉淀,所以只能从基础部分入手考察。下面有几条小建议:
- 在学校学习,或是利用网络上的各种资料巩固自己的基础,是这个阶段的关键。
- 在简历里展示出你的优势,让面试官看到你的潜力。
- 多去了解社区前沿技术,关注国内外的各种技术趋势。
- 尝试自己写一些小项目,或者是参与社区开源的项目。
- 开始记录自己的技术博客。
规划简历
通常来说,简历结构都差不多,内容最好控制在一张A4纸内。
- 个人信息
- 教育经历
- 工作经历
- 项目经历
- 自我总结
个人信息:
简洁明了,主要包括:
- 姓名、联系方式,邮箱;
- 学校,专业;
- 求职岗位;
教育经历:
- 写清楚学校、专业、学历、时间、相关课程
- 成绩较优异的同学可选择性备注专业排名
工作经历:
工作经历是简历中相当重要的一部分,它是你过去几年经历的总结。
工作经历需要写的是你做成了什么,注意不是流水账一样去列举你做了什么,最好的是你给公司带来了什么样的贡献和提效。
具体需要写清楚地点、起止时间、职位、承担的工作。
项目经历:
- 项目经验可以写实习项目、学校比赛项目、自己折腾的技术项目,按照时间顺序梳理
- 描述项目背后通用的技术知识的应用实践以及解决问题的思路
- 相关产出,在线文档、博客等
自我总结:
- 描述专业技能,尽可能减少熟练、精通这类字眼
- 简要描述奖学金和其他在校荣誉,如竞赛奖项
- 语言能力,英语、日语或者其他语言均可
巩固基础
注重基础理论的积累,比如css盒模型,布局,过渡与动画,定位这些比较常用的理论。对于javascript,要多熟悉逻辑运算的语法和数组语法,因为很多场景下javascript都在处理逻辑。
学习笔记:
主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue 等等
基础面试题
主要内容包括:HTML,CSS,JavaScript,浏览器,性能优化等等
字节真题训练
CSS 基础
- 请你讲一讲 CSS 的权重和优先级
- 介绍 Flex 布局,flex 是什么属性的缩写:
- CSS 怎么画一个大小为父元素宽度一半的正方形?
- CSS实现自适应正方形、等宽高比矩形
- 实现两栏布局的方式
- 实现三列布局的方式
- CSS 动画有哪些?
- 用css2和css3分别写一下垂直居中和水平居中
- visibility 和 display 的差别(还有opacity)
- opacity 可以有过渡效果嘛?
- BFC 与 IFC 区别
- BFC会与float元素相互覆盖吗?为什么?举例说明
- 了解box-sizing吗?
- 什么是 BFC
- 了解盒模型吗?
- 说一下你知道的position属性,都有啥特点?
- 两个div上下排列,都设margin,有什么现象?
- 清除浮动有哪些方法?
JavaScript 基础
- 问:0.1 + 0.2 === 0.3 嘛?为什么?
- JS 数据类型
- JS 整数是怎么表示的?
- Number() 的存储空间是多大?如果后台发送了一个超过最大自己的数字怎么办
- 写代码:实现函数能够深度克隆基本类型
- 事件流
- 事件是如何实现的?
- new 一个函数发生了什么
- new 一个构造函数,如果函数返回
return {}
、return null
,return 1
,return true
会发生什么情况? - symbol有什么用处
- 闭包是什么?
- 闭包产生的本质
- 一般如何产生闭包
- 闭包的应用场景
- 什么是作用域?
- 什么是作用域链?
- NaN 是什么,用 typeof 会输出什么?
- JS 隐式转换,显示转换
- 了解 this 嘛,bind,call,apply 具体指什么
- 手写 bind、apply、call
- setTimeout(fn, 0)多久才执行,Event Loop
- 手写题:Promise 原理
- js脚本加载问题,async、defer问题
- 如何判断一个对象是不是空对象?
计算机网络
自学几个月前端,为什么感觉什么都没学到??
这种现象在很多的初学者和自学前端的同学中是比较的常见的。
因为自学走的弯路是比较的多的,会踩很多的坑,学习的过程中是比较的迷茫的。
最重要的是,在学习的过程中,不知道每个部分该学哪些知识点,学到什么程度才算好,学了能做什么。
很多自学的朋友往往都是自己去找资料学习的,资料上有的或许就学到了,资料上没有的或许就没有学到。
这就会给人一个错误的信息就是,我把资料上的学完了,估计也-就差不多的了。
但是真的是这样的吗?非也,因为很多人找的资料就是很基础的。学完了也就是掌握一点基础的东西。分享给你一份前端分析路线,你可以参考。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。
ps://img-blog.csdnimg.cn/img_convert/15be8206a9f6e5bd9e8e930303b613ee.png)
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。