web前端开发入门课程,CSS定位

本文详述了一位应聘者在字节跳动实习面试中遇到的前端技术问题,涵盖JavaScript基础、CSS、网络通信、Vue框架、二面及三面的重点挑战。面试题包括this指向、发布订阅模式、HTTPS原理、缓存策略、二叉树、异步处理等内容,强调了基础理论和实战能力的重要性,并给出了面试准备建议和简历编写要点。
摘要由CSDN通过智能技术生成

字节面试题(实习)

一面

  • 自我介绍
  • this探讨
  • 说说有哪些改变this指向的方法
  • 假如要兼容IE,请简单实现一下bind
  • 你看过Vue的源码嘛?简单实现一下发布订阅模式
  • 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 基础

  1. 请你讲一讲 CSS 的权重和优先级
  2. 介绍 Flex 布局,flex 是什么属性的缩写:
  3. CSS 怎么画一个大小为父元素宽度一半的正方形?
  4. CSS实现自适应正方形、等宽高比矩形
  5. 实现两栏布局的方式
  6. 实现三列布局的方式
  7. CSS 动画有哪些?
  8. 用css2和css3分别写一下垂直居中和水平居中
  9. visibility 和 display 的差别(还有opacity)
  10. opacity 可以有过渡效果嘛?
  11. BFC 与 IFC 区别
  12. BFC会与float元素相互覆盖吗?为什么?举例说明
  13. 了解box-sizing吗?
  14. 什么是 BFC
  15. 了解盒模型吗?
  16. 说一下你知道的position属性,都有啥特点?
  17. 两个div上下排列,都设margin,有什么现象?
  18. 清除浮动有哪些方法?

JavaScript 基础

  1. 问:0.1 + 0.2 === 0.3 嘛?为什么?

  2. JS 数据类型

  3. JS 整数是怎么表示的?

  4. Number() 的存储空间是多大?如果后台发送了一个超过最大自己的数字怎么办

  5. 写代码:实现函数能够深度克隆基本类型

  6. 事件流

  7. 事件是如何实现的?

  8. new 一个函数发生了什么

  9. new 一个构造函数,如果函数返回 return {}return nullreturn 1return true 会发生什么情况?

  10. symbol有什么用处

  11. 闭包是什么?

  12. 闭包产生的本质

  13. 一般如何产生闭包

  14. 闭包的应用场景

  15. 什么是作用域?

  16. 什么是作用域链?

  17. NaN 是什么,用 typeof 会输出什么?

  18. JS 隐式转换,显示转换

  19. 了解 this 嘛,bind,call,apply 具体指什么

  20. 手写 bind、apply、call

  21. setTimeout(fn, 0)多久才执行,Event Loop

  22. 手写题:Promise 原理

  23. js脚本加载问题,async、defer问题

  24. 如何判断一个对象是不是空对象?

计算机网络
  1. DDOS 攻击
  2. http请求过程
  • DNS 域名如何解析的?
  • TCP三次握手
  • 为什么要三次握手?
  • 为什么HTTP协议要基于TCP来实现?
  • 说到三次握手,那在说下四次挥手吧?
  • 如果已经建立了连接,但是客户端突然出现故障了怎么办?
  • http请求方式有哪些?
  • 常用的请求状态码?
  1. TCP和UDP的区别以及应用场景
  • UDP
  • TCP
  • 应用场景
  1. tcp 中拥塞避免和流量控制机制
  2. http和https
  • http和https的区别
  • https的访问过程
  • https的优缺点?
  • https如何进行性能优化?
  1. 说下http缓存吧
  • 什么是缓存?又有什么用?
  • 你知道有哪些缓存方式吗?
  • 缓存位置
  • http缓存怎样生效的

Vue框架
  1. active-class是哪个组件的属性?嵌套路由怎么定义?
  2. 怎么定义vue-router的动态路由?怎么获取传过来的动态参数?
  3. vue-router有哪几种导航钩子?
  4. scss是什么?在vue.cli中的安装使用步骤是?有哪几大特性?
  5. mint-ui是什么?怎么使用?说出至少三个组件使用方法?
  6. v-model是什么?怎么使用? vue中标签怎么绑定事件?
  7. axios是什么?怎么使用?描述使用它实现登录功能的流程?
  8. axios+tp5进阶中,调用axios.post(‘api/user’)是进行的什么操作?axios.put(‘api/user/8′)呢?
  9. 什么是RESTful API?怎么使用?
  10. vuex是什么?怎么使用?哪种功能场景使用它?
  11. mvvm框架是什么?它和其它框架(jquery)的区别是什么?哪些场景适合?
  12. 自定义指令(v-check、v-focus)的方法有哪些?它有哪些钩子函数?还有哪些钩子函数参数?
  13. 说出至少4种vue当中的指令和它的用法?
  14. vue-router是什么?它有哪些组件?
  15. 导航钩子有哪些?它们有哪些参数?
  16. Vue的双向数据绑定原理是什么?
  17. 请详细说下你对vue生命周期的理解?
  18. 请说下封装 vue 组件的过程?
  19. 你是怎么认识vuex的?
  20. vue-loader是什么?使用它的用途有哪些?
  21. 请说出vue.cli项目中src目录每个文件夹和文件的用法?
  22. vue.cli中怎样使用自定义的组件?有遇到过哪些问题吗?
  23. 聊聊你对Vue.js的template编译的理解?
  24. Vuex是什么?为什么使用Vuex?
  25. vuejs与angularjs的区别?
  26. vue为什么不直接操作dom?
  27. 你怎么理解vue是一个渐进式的框架?
  28. Vue声明组件的state是用data方法,那为什么data是通过一个function来返回一个对象,而不是直接写一个对象呢?
  29. 说下vue组件之间的通信?
  30. vue中mixin与extend区别?

算法
  1. 冒泡排序
  2. 选择排序
  3. 快速排序
  4. 二叉树查找: 最大值、最小值、固定值
  5. 二叉树遍历
  6. 二叉树的最大深度
  7. 给予链表中的任一节点,把它删除掉
  8. 链表倒叙
  9. 如何判断一个单链表有环
  10. 给定一个有序数组,找出两个数相加为一个目标数
  11. 找出一个无序数组中出现超过一半次数的数字

篇幅有限,本文面试题资料需要的点击此处免费领取~

思考与感悟


其实整个备考的过程中,心态也是很重要的一部分,就好像我们当年高考的时候,心态一定要好。可能同学们经过很长的时间备考,然后投递了很多简历却没有面试机会。

首先要看一下是不是简历写得不好,一般没有机会大部分都是因为这个原因,可以找一下师兄姐聊一下如何修改简历。然后重新投递试试。或者有了面试机会却没有下轮面试了,那就是可能因为你的技术不够扎实,好好准备自己的基础,我推荐你:

写技术博客

不用自己去搭建一个博客(要是可以就更好了),选择一个平台,CSDN或者掘金都是不错的平台,然后就可以开始你的表演了。可以写一些最近的学习心得,面试技巧以及黑科技工具的使用等等。写博客的好处有很多,不仅可以锻炼的表达逻辑,还可以巩固你的知识体系。两全其美,何乐而不为?

另外就是可以多逛一下技术社区,了解前端的动态,多关注最近出了什么新技术、新框架、新八卦等等。试着去帮别人解答一些问题,别人也很愿意去听,但是不要抬杠。乐于分享的心态比技术本身更重要。

写项目

找一个idea,把之前所学的知识点用一下,或者用新的知识来重构一下旧的项目,都是一种产出的方法。如果你担心知识不够牢固可以上一下github找一些优质开源项目,看别人是怎么写的。项目中要把用到技术的那一块注释出来,不然过一个月都不知道是你写的。

交流心得

要是可以的话,可以找同学一起交流最近的学习成果。技术学习的路上是枯燥的,找到相同的学习伙伴很重要,能够给你一种学下去的动力,两个相互切磋相互进步也是一种产出的方法。

外就是可以多逛一下技术社区,了解前端的动态,多关注最近出了什么新技术、新框架、新八卦等等。试着去帮别人解答一些问题,别人也很愿意去听,但是不要抬杠。乐于分享的心态比技术本身更重要。

写项目

找一个idea,把之前所学的知识点用一下,或者用新的知识来重构一下旧的项目,都是一种产出的方法。如果你担心知识不够牢固可以上一下github找一些优质开源项目,看别人是怎么写的。项目中要把用到技术的那一块注释出来,不然过一个月都不知道是你写的。

交流心得

要是可以的话,可以找同学一起交流最近的学习成果。技术学习的路上是枯燥的,找到相同的学习伙伴很重要,能够给你一种学下去的动力,两个相互切磋相互进步也是一种产出的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值