10道前端面试题(带答案)

一,Html5 新增那些标签?

1,布局标签:header,section,footer,article,aside

2,表单标签: datalist,

3,多媒体标签: audio(音频), video(视频)

补充:

hidden( 隐 藏 元 素 ),required( 必 填 ),minlength( 最 小 长

度),maxlength(最大长度),pattern(正则表达式),placeholder(提

示文本),autocomplete(自动填充),autofocus(自动获取焦点)

二,css3 新增了那些新特性?

媒体查询(@media);

1,transfrom 系列:translate 平移, scale 缩放,rotate 旋转

2,动画(animate);

3,过渡效果(transition);

4,flex 弹性(伸缩)布局;

5,盒模型计算方式 box-sizing:border-box;

6,线性渐变(linear-gradient),径向渐变;

7,伪元素, 文字阴影(text-shadow), 边框阴影(box-shadow), 圆角

(border-radius)

三,什么是原型链?

每个构造函数都有一个 prototype 属性, 即原型对象, 通过实例对

象的 proto 属性也可访问原型对象;而原型对象本质也是一个对

象, 是对象就有自己的原型对象, 最终形成的链状的结构称为原型

链.

四,对 this 关键字的理解

this 在不同的场景下指向不太一样, 主要分为一下几种情况:

普通函数中指向全局 window;

对象的成员方法中指向该方法的宿主对象;

构造函数中指向 new 出来的实例对象;

事件处理函数中指向事件源;

回调函数中指向全局 window

五,常见 HTTP 状态码都有哪些?

100 => 正在初始化(一般是看不到的)

101 => 正在切换协议(websocket 浏览器提供的)

200 或者以 2 开头的两位数 => 都是代表响应主体的内容已经成功返

回了

202 => 表示接受

301 => 永久重定向/永久转移

302 => 临时重定向/临时转移(一般用来做服务器负载均衡)

304 => 本次获取的内容是读取缓存中的数据,会每次去服务器校验

400 => 参数出现错误(客户端传递给服务器端的参数出现错误)

401 => 未认证,没有登录网站

403 => 禁止访问,没有权限

404 => 客户端访问的地址不存在

500 => 未知的服务器错误

503 => 服务器超负荷(假设一台服务器只能承受 10000 人,当第

10001 人访问的时候,如果服务器没有做负载均衡,那么这个人的网

络状态码就是 503

六,针对页面性能优化,你有哪些优化方案?

1,资源加载方面:

减少 http 请求次数, 具体方案, 代码合并(合并 css,js), 使用精灵图;

减少 http 请求数据量, 代码压缩(css,js,html), 合理设置缓存;46

启用 CDN 加速服务;

2,代码层面:

避免滥用全局变量, 减少作用域查找(能用局部变量就不要声明全局

变量), 不要滥用闭包;

减少 DOM 操作, 操作 DOM 的时候对已经查找到的 DOM 对象进行缓

, 避免重复查找;

3,使用图片懒加载, 避免单次加载图片数量过多导致页面卡顿;

script 标签写在页面底部, 因为 js 的加载会阻塞页面的渲染;

不要在本地书写大量 cookie, 因为 cookie 会伴随每一次 http 请求;

七,分别介绍下 MVC, MVVM, MVP 这三种设计模式

1,MVC 是后端语言的一种设计模式, 主要是实现对代码分层, M(model)

数据模型层, 主要负责操作数据库; V(view)视图层, 主要负责进行界面

展示, 可以认为前端的 html,css,js 充当的就是视图层; C(controller)

务控制层, 主要负责控制具体的业务逻辑, 负责将 model 数据层的数

据交给 view 视图层进行展示. ,

2,MVVM 是前端的一种设计模式, vue 就是基于这种模式来设计的, 是从

3,MVC 演变过来的. M(model)数据层, 主要负责数据和方法的初始化;

V(view)视图层, 可以认为 html,css 充当的就是视图层的角色; VM(view

model)视图模型层, 负责连接数据层和视图层, 将数据层的数据交给

视图层展示, 将视图层的行为传递给数据层.

MVP 也是从后端的 MVC 设置模式中演化过来的, 主要应用于安卓开

发中. M(model) 数据层, V(view) UI 逻辑; P(Presenter)业务逻辑

八,Vue 有哪些常用的事件修饰符?

.prevent: 阻止默认事件;

.stop: 阻止冒泡;

.once: 事件执行一次;

.self: 只当在 event.target 是当前元素自身时触发处理函数

九,如何中断ajax请求?

一种是设置超时时间让ajax自动断开,另一种是手动停止ajax请求,其核心是调用XML对象的abort方法,ajax.abort()

十,说一下宏任务和微任务?

1,宏任务:当前调用栈中执行的任务称为宏任务。(主代码快,定时器等等)。

2,微任务: 当前(此次事件循环中)宏任务执行完,在下一个宏任务开始之前需要执行的任务为微任务。(可以理解为回调事件,promise.then,proness.nextTick等等)。

3,宏任务中的事件放在callback queue中,由事件触发线程维护;微任务的事件放在微任务队列中,由js引擎线程维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值