2022前端面试题附答案.
1、HTML5的新特性?
- 1、语义化标签,比如header、footer、nav、aside、article、section
- 2、音视频,比如audio、video
- 3、画布canvas、矢量图svg
- 3、画布,canvas的api有getContext、fillStyle、fillRect等
- 4、本地存储localStorage、sessionStorage
- 5、web worker
2、语义化的好处?
- 1、代码分块清晰,便于维护
- 2、页面结构清晰,便于浏览器。搜索引擎解析
- 3、利于搜索引擎的爬取,利于SEO
3、canvas的常用api有哪些?
- getContext:返回一个指定canvas的绘画环境对象
- beginPath:开始绘制
- moveTo:移动画笔位置
- lineTo:用来画线段
- stroke:用来实施绘制的操作
- lineStyle:设置线段的样式
- closePath:结束绘制
4、web worker有什么作用?应用场景有哪些?
开启一个子线程,且子线程的操作不受线程的影响
- 大数据处理
- 耗费时间较长的操作
5、浏览器本地缓存localStorage与sessionStorage的区别?
- 生命周期不同:前者一直存在浏览器,除非用户手动清除,后者生命周期结束于浏览器或者tab页的关闭
CSS3
1、有哪些新特性呢?
flex、animation、transform、border-radius、box-shadow、opacity
2、背景毛玻璃的效果如何实现呢?
filter:blur()
3、position有哪几种呢?
- static:默认
- relative:相对于自身
- absolute:相对于最近的一个非static的祖先级元素进行定位
- fixed:相对于屏幕窗口进行定位
- sticky:用来实现吸顶效果
4、如何自己实现跟position:sticky的效果?
使用getBoundingClientRect或者IntersectionObserver计算指定元素位置,到达一定距离更改指定元素定位为fixed,从而实现sticky的效果
5、重绘回流是什么呢?
文章链接
6、怎么降低重绘回流的次数呢?
文章链接
7、flex布局如何更改主轴方向?
设置flex-direction样式属性
8、flex布局如何允许换行呢?
设置flex-wrap样式属性
9、flex布局实现水平垂直据居中?
设置justify-content和align-items都为center
10、flex:1的原理是什么呢?
flex-grow 、flex-shrink 、flex-basis这三个样式的合集,全写状态为flex:0 1 auto,简写为flex: 1
11、rem与em的区别是什么呢?
- rem:相对于<html>标签的font-size去决定大小,例如html标签font-size为14px,则2rem === 28px
- em:相对于自身的font-size去决定大小,自身没有font-size则继承祖先级元素的font-size
JavaScript
1、原型链是什么呢?有什么作用吗
- 原型链:原型链是一条对象隐式原型不断往上指向的一条指向链,尽头是Object的隐式原型,也就是null
- 作用:构造函数原型上的东西可以让实例们共享,从而节省了空间
2、闭包是什么?有什么优缺点
闭包是一个能让函数外部访问到函数内部的一个函数
- 优点是:延长函数内部变量的寿命,使函数外部能访问到函数内部
- 缺点是:滥用闭包导致内存溢出,页面卡顿
3、JavaScript总共有几种数据类型?
字符串、布尔值、数值、undefined、null、object、symbol、bigInt
4、JavaScript判断类型的方式是什么?
- typeof:只能判断 字符串、布尔值、数值、undefined、function、object、symbol、bigInt,不能区分判断 数组、null、对象
- A instanceof B:判断A是否为B的实例对象,从而判断A是否为B类型
- Object.prototype.toString.call():可以判断所有的数据类型
6、JavaScript不同类型的存储方式有何区别?
普遍认为
- 基础数据类型存于栈内存
- 引用数据类型存于堆内存 我认为
- 所有数据都存于堆内存,栈内存只存指针
7、你说字符串存储在栈内存,那如果字符串很长。超过了栈内存最大容量呢?
所以说我觉得所有数据都存于堆内存,毕竟栈内存容量有限。
8、call、apply、bind的区别?
- call于apply的区别在于传参,前者直接传参,后者传一个数组
- bind传参后不立即执行,而是会返回一个函数,这个函数可以继续传参,且执行(bind函数可以分两次传参)
9、bind返回的函数能作为构造函数吗?
不能哦,会报错的
10、赋值、深拷贝与浅拷贝有什么不同?
- 赋值:赋值指针指向,还是用的同一个内存空间
- 浅拷贝:只拷贝第一层
- 深拷贝:所有层都会进行拷贝
11、怎么判断一个对象有环引用呢?
定义一个空数组,且对于目标对象进行递归,每次都判断递归项是否为对象,是的话放进数组,且每次判断属性值是否在数组里,在的话说明环引用了
function cycleDetector(obj) {const arr = [obj]let flag = falsefunction cycle(o) {const keys = Object.keys(o)for (const key of keys) {const temp = o[key]if (typeof temp === 'object' && temp !== null) {if (arr.indexOf(temp) >= 0) {flag = truereturn}arr.push(temp)cycle(temp)}}}cycle(obj)return flag
}
ES6
1、let、const的暂时性死区问题?
在一个作用域里如果存在let、const定义的一个变量之前使用该变量,则报错“cannot access xx before initialization”
2、Promise的then为什么可以链式调用?
Promise的then方法返回一个新的Promise对象,保证了then方法可以进行链式调用
3、async/await的用法?
- async/await的作用是:以同步的方式执行异步操作,实现排队效果
- async:async函数执行返回一个Promise
- await:await后接Promise则会等待Promise返回结果,接普通函数执行则会接收返回结果
- await只能在async中使用,但是浏览器调试中await可单独使用
4、Class的静态属性、继承?
- 静态属性:static关键字定义的变量属性,只能通过Class构造函数的属性的方式去访问
- 继承:使用 Child extends Father {},且配合super对象,完成继承
Vue
1、Vue与React的区别在哪?
比较的是Vue2 相同点:
- 1.都使用了虚拟dom
- 2.组件化开发
- 3.都是单向数据流(父子组件之间,不建议子修改父传下来的数据)
- 4.都支持服务端渲染 不同点:
- 1.React的JSX,Vue的template
- 2.数据变化,React手动(setState),Vue自动(初始化已响应式处理,Object.defineProperty,Proxy)
- 3.React单向绑定,Vue双向绑定
- 4.React的Redux、mobx,Vue的Vuex、pinia
2、computed与watch的区别?
- computed:多对一,多个值的变化决定一个目标值的变化
- watch:一对多,一个值的变化,引起多个目标值的变化
3、Vue的生命周期介绍一下?
4、Vue的实例加载完成在哪个生命周期呢?
beforeCreated
5、Vue的真实dom挂载完成在哪个生命周期呢?
mounted
6、数据更改如何获取最新DOM
nextTick
7、路由有几种模式,有何区别?
- hash模式:监听url中hash的变化来实现不同页面的展示,链接带#
- history模式:url中不带#,利用HTML5的history.pushState方法进行不刷新跳转页面,但需要后端配合404时的重定向
- abstract:使用在非浏览器的环境,例如node环境
8、路由有哪些钩子函数?
全局钩子
- beforeEach:跳转路由前
- to:将要跳转进入的路由对象
- from:将要离开的路由对象
- next:一个方法,执行则完成跳转
- afterEach:跳转路由后
- to:将要跳转进入的路由对象
路由独享钩子
routes: [{path: '/xxx',component: xxx,beforeEnter: (to, from, next) => {}}
]
组件内路由钩子
- beforeRouteEnter(to, from, next):跳转路由渲染组件时触发
- beforeRouteUpdate(to, from, next):跳转路由且组件被复用时触发
- beforeRouteLeave(to, from, next):跳转路由且离开组件时出触发
如果对你有帮助请给小编一个点赞加评论
2022前端面试题附答案.相关推荐
- web前端面试题(附答案)
web前端面试题 1.src和href的区别 ? href: Hypertext Reference的缩写,超文本引用,多数用于a link 标签 看下图 加载他们的时候 不会停止对当前页面的加载 浏 ...
- web前端面试题附答案044 - vue获取param参数,有什么缺点吗?
看这个vue的图标像不像小时候看的<魔神坛斗士>身上的某个元素.真希望成年人的世界就像小时候一样简单快乐. 今天这道面试题主要围绕vue中获取param参数展开,看完本文你可以吸取到以下知 ...
- 来自大厂 10+ 前端面试题附答案(整理版)
跨域方案 很多种方法,但万变不离其宗,都是为了搞定同源策略.重用的有 jsonp.iframe.cors.img.HTML5 postMessage等等.其中用到 html 标签进行跨域的原理就是 h ...
- web前端面试题附答案035-关于number考点大全,走过路过不会错过
1.如何创建一个number数值型的变量 <script>// 创建一个10进制number数值var num = 5;var num2 = 5.55;// 创建一个16进制的数值var ...
- 2022年最新互联网大厂前端面试题及答案-前端工程必备技能(持续整理更新中【关注收藏不迷路】)
对于做前端的朋友,或者做了前端几年了,基础不好的,或者想进大厂的想了解深入,下面的知识点很多前端朋友都没有深入了解.很重要,看完有种茅塞顿开感觉,**关注+收藏哦,总有一天用的得.** 涉及到知识点: ...
- 前端面试题及答案整理(2022最新版)
收集整理2022年最新前端面试题及答案,方便平时翻看记忆,欢迎各位大佬们补充. 一般来说,把下面基础中的高频题写熟练就差不多了.当然去面大厂这些远远不够,还要再刷一些算法题. 基础 高频 1.手写 i ...
- 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解
1.2017前端面试题及答案总结 |掘金技术征文 "金三银四,金九银十",用来形容求职最好的几个月.但是随着行业的饱和,初中级前端er就业形势不容乐观. 行业状态不可控,我们能做的 ...
- html5试卷答案,常见的HTML5前端面试题及答案
原标题:常见的HTML5前端面试题及答案 随着互联网技术的日渐成熟,用人单位在面试时,不仅考察面试者的技术掌握情况,更加注重人才对于理论知识的考量.因为理论知识掌握扎实证明面试者接受过专业的训练,深知 ...
- 前端面试题及答案:app怎么做适配的?
前端面试题及答案:app怎么做适配的?下面一起来看看吧! 基于手机系统开发的app(原生Android/IOS) 另外一种是webapp 设置以下标签: 具体的含义为:app完成的页面的宽度等于设备的 ...
最新文章
- mysql中sql语句
- 读样章、写评语,即有机会获赠《编程大师访谈录》!
- [笔记]NumPy基础操作
- 数据结构:平衡二叉树概念、旋转
- DirectSound学习笔记(3):协作级别
- Linux 下编译并运行C++程序
- 开源开放 | Beyond 预训练语言模型,NLP还需要什么样的知识?
- 解决outlook2013设置错误无法启动
- Thinkphp3.2 分页带中文参数报错
- 08Vue.js快速入门-Vue综合实战项目
- 创建Web Service后,客户端不能调用的解决办法(提示:此方法只有在本地才可以使用)...
- C# string 判断字符串是否是中文
- ansible、ansible tower的安装以及基本使用
- CentOS历史版本下载
- 台式计算机安装无线网卡驱动程序,台式机无线网卡驱动,小编教你台式机无线网卡驱动如何安装...
- The Dominator of Strings
- 经验分享:半小时建立自己的在线管理系统!
- Docker容器化开发流程(一)介绍
- 【踩坑记录】colmap中的相机位姿的坐标系定义及其可视化结果的隐含转换
- 电脑连不上网络, 并且宽带连接是灰色的
热门文章
- js 二叉树图形_JS实现二叉树 - 山海散客 - OSCHINA - 中文开源技术交流社区
- ISO26262 - Coverage
- 华为中国生态大会2021:因聚而生 有能有为
- 中国城市交通自动控制起源 | 7386工程背后的故事
- Wingdings字体
- 计算机英语司爱侠第二版全文,计算机英语 第2版 配套习题 作者 司爱侠 张强华 参考试卷.doc...
- win10默认浏览器不显示谷歌浏览器_浅析win10系统谷歌浏览器网页显示不正常的应对办法...
- 百度Paddle深度学习框架学习
- PPTV网站强化移动视频高端内容
- 服务器ubuntu系统安装后黑屏,ubuntu 成功安装后开机黑屏或闪屏