这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道

HTML

  • HTML5有哪些新特性?

  • Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?

  • 如何实现浏览器内多个标签页之间的通信?

  • ⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?

  • 简述⼀下src与href的区别?

  • cookies,sessionStorage,localStorage 的区别?

  • HTML5 的离线储存的使用和原理?

  • 怎样处理 移动端 1px 被 渲染成 2px 问题?

  • iframe 的优缺点?

  • Canvas 和 SVG 图形的区别是什么?

JavaScript

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

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

  • JS 数据类型

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

  • 事件流

  • 事件是如何实现的?

  • new 一个函数发生了什么

  • 什么是作用域?

  • JS 隐式转换,显示转换

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

  • 手写 bind、apply、call

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

  • 手写题:Promise 原理

  • 说一下原型链和原型链的继承吧

  • 数组能够调用的函数有那些?

  • PWA使用过吗?serviceWorker的使用原理是啥?

  • ES6 之前使用 prototype 实现继承

  • 箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?

  • 事件循环机制 (Event Loop)

业务中有时候会碰见多个表单一起提交的场景,每个表单都有校验,官方文档中没有看到这种解决方法

我们可以用promise.all来处理 多个表单校验
在这里插入图片描述


定义每个表单验证的规则和名称

//基本信息表单验证
const basicFormRef = ref<FormInstance>()
const basicRules = reactive<FormRules>({
  workArea: [{ required: true, message: '请选择社区', trigger: 'change' }],
  workStreet: [{ required: true, message: '请选择街道', trigger: 'change' }],
  reservationTime: [{ required: true, message: '请选择预约时间', trigger: 'change' }]
})
//老人信息表单验证
const oldmanFormRef = ref<FormInstance>()
const oldmanRules = reactive<FormRules>({
  servicePeople: [{ required: true, message: '请选择老人', trigger: 'blur' }]
})
//工单信息表单验证
const workTypeFormRef = ref<FormInstance>()
const workTypeRules = reactive<FormRules>({
  workType: [{ required: true, message: '请选择工单类型', trigger: 'change' }]
})
//派单信息表单验证
const sendFormRef = ref<FormInstance>()
const sendRules = reactive<FormRules>({
  isWork: [{ required: true, message: '请选择是否指派', trigger: 'change' }]
})

第二步

提交按钮 绑定事件

原理就是 在方法里面 定义多个函数来校验单个表单规则,最后通过Promise.all[]来并行 处理返回的结果

<el-button type="primary" @click="affirmSubmit">提交</el-button>

/\*\*
 \* 模块名:校验多个表单
 \* 代码描述:
 \* 作者:Fant
 \* 创建时间:2023/06/10 11:48:40
 \*/
const affirmSubmit = async () => {
  //基本信息校验
  const refBasicForm = async (formEl) => {
    if (!formEl) return
    return await formEl._value.validate((valid: any) => {
      console.log(valid)
    })
  }
  //老人信息校验
  const refOldmanForm = async (formEl) => {


### 刷面试题

刷题的重要性,不用多说。对于应届生或工作年限不长的人来说,刷面试题一方面能够尽可能地快速自己对某个技术点的理解,另一方面在面试时,有一定几率被问到相同或相似题,另外或多或少也能够为自己面试增加一些自信心,可见适当的刷题是很有必要的。

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**

* **前端字节跳动真题解析**  

  ![](https://img-blog.csdnimg.cn/img_convert/8d27500df7b25342f252bca635ca0ab3.png)

* **【269页】前端大厂面试题宝典**  

  ![](https://img-blog.csdnimg.cn/img_convert/eac3322374bd31596de9bf548f6ce47f.png)


最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。

GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:1 个月前 )
c345bb45 5 个月前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐