月薪15~20k的前端面试问什么?

  • 了解一些较冷僻的相关语法糖和api等
了解
  • 未在开发中使用过,但写过demo

  • 阅读过相关文档或者视频教程

  • 可以用五分钟内向他人介绍这项技术的特点和应用场景

不了解
  • 只是听过名字

  • 只是大概的翻过文档

  • 没有写过关于这项技术的代码

  • 需要同时具备当前等级所有特性

  • 高等级描述包含低等级描述特性

非常多的简历中写到的了解,其实是不了解,熟悉和掌握可能往往只是了解的水平,如果你写的精通,那么我就要带着电脑来面试你了。

手写代码:

可以借助emmet或者编辑器的提醒,非复制粘贴整段代码的方式书写代码。

记忆性考察:

需要背下来的内容,不可以借助搜索引擎。比如大多数关键字的拼写,对于超长关键词可以借助编辑器完成输入。 一些常用的知识点也会要求记忆性考察,比如盒模型和选择器规则,因为日常使用频度较高,理应记住。

索引性考察:

可以一次性在搜索引擎通过技术关键字找到解决方案。比如: 我们希望做一个特殊效果的轮播图,文字和背景图不同步滚动,背景图每次只是水平偏移一小截,文字则是整页的滚动 面对这个描述能够识别出搜索关键词为“视差滚动”

理解性考察:

要求能够通过代码的方式展现知识点以及和其他知识点的对比。 能够在某应用场景内设计出该技术的使用方案。 能够讲清其背后的数学原理或者逻辑关系。

面试意图

===============================================================

正面

  1. 是否具有工作岗位所需要的最低能力

  2. 是否有过类似项目开发经历

  3. 是否掌握工作岗位所需技能

  4. 现场编码解决问题

  5. 正确使用搜索引擎

  6. 能够对之前项目中使用过的技术做出详细解释

  7. 是否对技术有热情

  8. 有在线可访问的代码

  9. 有技术博客

  10. 在技术社区积极回答问题

  11. 关注新技术,并且做过官方demo以外的案例

  12. 日常使用技术解决生活中的问题

  13. 成长空间

  14. 计算机专业背景

  15. 良好的算法基础

  16. 良好的表达能力

  17. 做过技术文章翻译

  18. 有至少一项5年以上的爱好

反面

  1. 对冷门知识点做记忆性考察

  2. 对过时知识点做解释型

  3. 以回答出问题的个数作为录用指标

  4. 面试应该像测视力一样,一开始从最容易的问题入手,逐步深入,直到无法正确回答。

  5. 如果面试中面试者没有回答对任何问题或者回答对了所有的问题,都不是一次成功的面试。

面试方式

  • 了解职业经历,确认工作内容。

  • 通过场景概括出技术能力范围。

  • 面试前确认,模糊的地方在开始的时候确认。

  • 参与了哪些项目,在项目中扮演什么角色,完成了哪些编码工作。

  • 工作的流程是怎么样的,是否有规范(比如gitflow)工作的经验。

  • 按照简历的技能列表挑选比较鲜明的做提问。

  • 对于基础知识,比如HTTP协议,以记忆性考察为主;对于正则路由promise等技术如果不是近期项目使用过,但是- 声称掌握,可放宽为索引性考察。

  • 我常常会进行一个额外的环节,就是让面试人在简历中圈出真实技能,排除注水内容,然后只对圈出内容进行提问。因为在我看来,环境所迫带来的简历注水也不该等同为面试人的品质问题,另一方面,是否能够正确评价自己是程序员的一项重要能力。

我们公司使用的技术栈相关api问答,以及根据情况来询问更深层次的语法和用法等

大约5~10个问题,主要引导面试者讲述技术的原理,以及技术的使用形式,以及使用过程中遇到的问题(参看附录)。

比如面试者声称熟悉AJAX,我可能会问他AJAX使用了js的什么对象(原理),什么是异步函数(使用形式),跨域问题有没有遇到过(问题),JSONP为什么能解决跨域问题(原理),jsonp返回的内容和json有什么不同(使用),jsonp使用遇到过哪些局限性(问题)…

按照这个层次递进深入,直到面试者回答吃力或者无法回答。

一般不打断面试者的叙述,哪怕说的是错误的,也会在整段讲完之后再进行纠正,然后开始下一个话题。

做实际编码的测试,主要考察编程能力。 选用基本的js题目做测试,比如

在聚会中常玩数七的游戏,七的倍数和带有七的数字都不能说,比如14,27,28。请找出1~100的不能说的数字。

考察的点有:

  • 技术栈是否契合

  • 技术深度

  • 技术的基础了解程度

  • 遇到问题的解题思路

总结

=============================================================

内容部分知识举例说明了一些常见的技能列表,实际上会根据面试者的简历情况设置问题。

记忆性内容作为底线要求,如果不能达标,意味着基础不牢,在日后的工作中会在很多基本的问题上搞不清。

编码环节主要做搜索性考察,因为这是工作的常态形式。使用搜索引擎的能力决定了程序员的日常水平。

理解性考察对应的是知识点的理解和应用,是否能够把知识点运用到开发中,并且对日常开发中遇到的问题有自己的思考,反应的是面试者的潜力和发展。

基本功考察

================================================================

1. 关于Html

  • html语义化标签的理解; 结构化的理解; 能否写出简洁的html结构; SEO优化

  • h5中新增的属性; 如自定义属性data, 类名className等, 新增表单元素, 拖拽Drag

  • h5中新增的API, 修改的API, 废弃的API 稍作了解 (离线存储, audio, video)

2. 关于CSS

  • CSS选择器( 三大特性 )

  • BFC机制

  • 盒模型

  • CSS模块化开发(封装); SCSS和LESS的使用

  • 屏幕适配 以及 页面自适应

  • CSS3中新增的选择器

  • CSS3中新增的属性, transform trasition animation等…

3. 关于布局

  • 标准文档流(padding + margin + 负margin) + 浮动float + 定位

  • 百分比布局(流式布局): px单位 用 %num代替, 占父级元素的百分比

  • flex弹性布局: 主轴 辅助轴的几个属性

  • grid栅格布局: 使用框架中的类名来替代: 本质上还是百分比布局

4. 关于JS基础

  • 变量数据类型及检测: 基本 + 引用

  • 运算符: 算术 + 条件 + 逻辑 + 位 + 短路, 隐式转换等

  • 条件, 循环, 异常处理 if switch(){case xxx:} try catch finally throw

  • 函数定义, 调用方式(apply, call, 直接调用), 传参: 实参给形参赋值

  • 字符串, 数组, 对象常用API,

  • 正则表达式

5. 关于JS高级

  • 作用域, 作用域链, 闭包

  • 原型, 原型链, 继承

  • 函数上下文, this指向

  • js的运行机制, 事件队列和循环

  • 同步, 异步编程

6. 关于网络协议

  • HTTP协议

  • cookie, session, token

7. 关于ES6语法

  • 字符串, 数组, 对象 扩展的api

  • 变量扩展: let const 解构赋值 块级作用域

  • 函数扩展: 箭头函数 默认参数, rest参数

  • 展开运算符, 模板字符串

  • set 和 map数据结构

  • 迭代器和生成器函数 next 和 yield的理解

  • proxy对象 属性代理器: 属性的读取(get)和设置(set)相关操作

  • promise对象, 异步编程的解决方案

  • async + await: 异步编程的终极方案 promise + generator的语法糖

  • class语法 构造函数的语法糖

  • 模块化编程 export + import 的 导出和导入

9. VUE基础

  • 基本指令

  • 实例的属性和方法

  • 实例的生命周期

  • 组件基础: 创建,注册,添加属性方法,套用等…

  • 组件通信传值 父子, 兄弟, 跨级

  • 插槽slot等…

10. VUE高级

  • vue-router: 搭建SPA

  • 路由,组件的配置

  • 路由间的传值

  • 路由跳转

  • 路由的导航守卫

  • 记住在router.js 和 组件页面中的使用方式

  • vuex: 状态管理: 数据仓库store

  • 实例化仓库的5大属性的使用

state, getters, mutations, actions, modules

  • 辅助函数mapState等…, 仓库中计算属性的映射, 方便操作

  • 记住在 store.js 和 组件中 使用方式

11. VUE深入, 源码阅读

  • 数据响应式原理

  • virtual dom

  • diff 算法

  • nextTick等等…

  • vue2和vue3的数据绑定

  • vue3的componest API

  • vite的用法

DOM

==============================================================

掌握原生的DOM操作
增删查改
熟悉node和element对象
事件关于事件的机制
  • 冒泡和捕获

  • 事件委托

  • 自定义事件

  • Event对象

  • 面向对象

了解面向对象的思想,能够以面向对象的思想构建应用。比如封装一个日历组件,设计对象所需的属性值和方法。
  • new方法

  • 继承,派生

  • 原型和原型链

函数
  • 熟悉Array,String等的方法

  • call和apply方法的使用

  • 链式调用

  • this

工程化


  1. 掌握gulp

  2. 索引行考察手写gulp任务

  3. 掌握模块化

  • CMD标准

  • commonjs

  • ES6模块

  • babel如何使用

  • webpack打包方案

  • 异步加载

  • 打包多个文件

  1. 掌握webpack
  • 阅读webpack文档

  • 理解配置文件结构

  • 合并,注入生效代码部分

  • 热更新

  1. CSS
命名策略
嵌套
变量
函数
了解nodeJS对于前端岗位,nodejs的使用主要集中在自动化和搭建简单的数据服务器两个方面。
  • 是否上传过npm包

  • 断点调试法

  • express

  • 插件

  • 中间件

  • 路由原理

  • HTTP协议

  • 数据库查询

  • HTML模板(ejs,pug)

了解ES6
  • promise

  • Generator

  • 花括号作用域

  • class

  • 数组遍历(ES5)

  • 严格模式(ES5)

  • 模块系统

框架专题


通用
  • MVC

  • 双向数据绑定

  • 单项数据流

  • 组件化

  • 生命期

  • 路由

前端模板
  • 横向对比,所用模板的优点

  • 至少使用过两种以上的前端模板

工程能力考察:


  1. 项目能力
  • vue-cli脚手架搭建和功能配置 vue.config.js

  • vite的使用和搭建等

  • webpack的常用配置

  • 项目构建 打包

  1. 熟悉各类框架的文档…
  • UI框架: Bootstrap, MUI, Element-ui等

  • 常用的插件整理, 整理一个自己插件库, 封装自己的方法库,组件库

  1. 常用的工具熟练度
  • PC端和移动端开发注意事项和兼容性
  1. 经验总结: 如何快速确定项目的技术选型

  2. 坑点总结

  • 项目遇到坑坑坑!!!

  • 如何处理,如何提出issue并且合作处理

  1. git或者svn等使用情况

  2. 项目中的性能优化记录 ( 都是细节点…多记录 )

  3. 需求文档的理解, 可以结合 项目流程图, UML图

  4. 问题解决能力: (bug定位调试, 查找文档, 寻求他人…)

  5. 平常有记录的习惯吗。

模块化, 组件化开发能力


  • 项目分类; 各类文件整理,分类

  • 各类功能封装

  • 组件和功能模块的抽离, 解耦, 复用

内功考察:


  1. 面向对象的编程思想
  • 类的抽象

  • 对象的封装, 继承

  • 为了更好的去管理数据, 分类数据 实现高内聚, 低

  1. 设计模式
  • 设计模式感觉也是

  • 将面向对象思想 再度抽象成现实中 某些特定模式

  1. 数据结构和算法
  • 学习常用的排序搜索算法, 顺序表,链表,栈,队列,树,堆 结构等等…

  • 考验你的 抽象思维 和 数学功底了

  • 将现实需求 抽象成 计算机代码 的思维能力

附加技能考察:


  1. 学习能力
  • 持续学习的态度–博客, 笔记记录

  • 技术论坛活跃度高, 问答多

  • GitHub开源项目参与

  1. 了解一门后端语言
  • node.js, python, php等…

  • 数据库mysql,redis,mongodb. sql的操作语句, mongo的操作语句, redis操作语句

  • node + express 搭建本地服务等

  • python + django + request + scrapy

  1. 系统编程
  • Linux命令行操作, 系统文件管理

  • 多任务, 多线程, 多进程, 协程, 并发, 并行, 串行, 同步, 异步等概念的理解

95页前端学习笔记

====================================================================

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《95页前端学习笔记》电子稿文件。

主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue 等等。需要可以 点击此处 领取完整版【95页】前端模块笔记

html5/css3

  • HTML5 的优势

  • HTML5 废弃元素

  • HTML5 新增元素

  • HTML5 表单相关元素和属性

  • CSS3 新增选择器

  • CSS3 新增属性

  • 新增变形动画属性

  • 3D变形属性

  • CSS3 的过渡属性

  • CSS3 的动画属性

  • CSS3 新增多列属性

  • CSS3新增单位

  • 弹性盒模型

JavaScript

  • JavaScript基础

  • JavaScript数据类型

  • 算术运算

  • 强制转换

  • 赋值运算

  • 关系运算

  • 逻辑运算

  • 三元运算

  • 分支循环

  • switch

  • while

  • do-while

  • for

  • break和continue
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

更多面试题

**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等

资料获取方式:点击蓝色传送门获取

分支循环

  • switch

  • while

  • do-while

  • for

  • break和continue
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-W7c9tKLm-1712766847144)]

[外链图片转存中…(img-8YMq9qMB-1712766847144)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-ly2U1NYJ-1712766847145)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

更多面试题

**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等

资料获取方式:点击蓝色传送门获取

[外链图片转存中…(img-2JMqG4Jq-1712766847145)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值