常见的前端面试问题及解析(一)

1.define介绍

define 是 amd (异步模块加载机制) 的api

2.express 是什么

express是一个最小的,灵活的Node.js web 应用程序开发框架,它提供了一套强大的功能来开发web 和移动应用程序

3.require 是什么 

异步加载模块的加载器

4.var let const 的区别

var  存在变量提升,let  和const 块级作用域

5.用过哪些Pc端以及移动端框架

pc:vue.js .bootstrap,jQuery,react,

6.事件冒泡,事件委托以及事件捕获

事件冒泡就是子级元素的某个事件被触发,它的上级元素的该事件也被递归执行,冒泡的重点是window

阻止事件冒泡在子级元素上加e.stopPropagation阻止事件冒泡

事件委托其实是用了事件冒泡的原理,从点击的元素开始,一递归方式向父元素传播事件,点击的事件被触发,就是事件捕获

7.on,bind,live的区别

bind是用来绑定一个或多个事件,live 也可以绑定一个或者多个事件,但是还可以为新增加的元素绑定事件

on 是前两种方式的结合,不仅如此 on方法还多了一个selector 方法,也就是子类选择器,还可以事件委托

8.call,apply,bind的区别

共同点:都是在调用是,动态指定函数中的this

不同点:1.call。apply 借用,临时绑定;2.bind 永久绑定

返回值:1.call,apply 不创建新函数,仅调用原函数;2,bind 基于原函数,创建新函数对象,之后调用的是新函数对象

9,在前端开发中,有一部分用户行为会频繁的触发事件,而对于DON操作,资源加载等耗费性能的处理,很可能到导致卡顿,甚至浏览器的奔溃,防抖和节流就是为了解决这一类的问题

防抖:

理解:人员上满了,才发车

场景:实时搜索,拖拽

节流:

理解:大于等于10分钟发一次车,充电是一定间隔时间就会被触发一次。(即预定一个函数只有在大于等于执行周期才会执行,周期内不执行)

场景:窗口调整,页面滚动,抢购时疯狂点击

懒加载原理:

先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储在img标签的自定义属性 (data-src)。当js监听到该图片元素进入可视窗口时,即将自定义属性中的地址存储到src属性中,达到懒加载的目的;

防止服务器响应大量请求导致服务器响应慢,页面卡顿或奔溃

常见的Http状态码

200 请求成功

301 永久性重定向

302 临时重定向

403 没有权限访问

404 请求的资源,网页 无法找到

503 服务器端无法响应 服务器由于在维护或已经超载无法响应

11.什么情况下会遇到跨域,描述一下前端常见处理跨域的几种方式;

浏览器最核心,最基本的安全功能时同源策略。限制一个源中加载文本或者脚本与其他源中的资源的交互方式,当浏览器在执行一个脚本时回检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域

Jsonp:原理就是利用了script 标签不受同源策略的限制,在页面中动态插入了script,标签中src 属性就是后端API的接口的地址,并且以get的方式将前端回调处理函数名称告诉后端,后端在响应请求时,会将回调归还,并且将数据以参数的形式传递回去

cors:跨域资源共享,是一种允许当前域的资源被其它域的脚本请求访问的机制

服务器跨域:服务器中转代理

前端向本地服务器发送请求,本地服务器代替前端再向服务器发送请求,本地服务器是个中间商

window.postMessage  可以向其它window 对象发送消息

web 前端 应该从哪些方面来优化网站性能

1.减少页面体积,提升网络加载

静态资源压缩合并,(js/css 代码压缩合并,雪碧图)

静态资源缓存

使用CDN (内容分发网络) 加载资源更快

2.优化页面渲染

css放在前面,js放后面

懒加载

减少DOM操作

13.浏览器端存储有哪些,请描述他们的区别 

cookie,localStorage,sessionStorage,web SQL ,indexedDB,他们都是保存在浏览器端,且同源的

区别:

1.cookie 数据始终在同源的http 请求中携带(即使不需要),即cookie 在浏览器和服务器间来回传递,而sessionStorage 和 localStorage 不会自动把数据发给服务器,仅在本地保存,

2.存储大小限制也不同

3.数据有效期也不同,

4,作用域不用,

说一说 get 和post 的请求 

1,get 请求只能进行URL 编码,而post 支持多种编码方式

2.get请求参数会被完整保留在浏览器历史记录里,而post 中的参数不会被保留

4.get请求在URL 中传送的参数是有长度限制的,而post没有

5.对参数的数据类型,get 只接受ASCII 字符,而post 没有限制

6.安全性,get 比post 更不安全,因为参数直接暴露在URL上,所以不能 用来传递敏感信息,get参数通过url传递,post 放在request body 中

7.GET后退、刷新无影响,post 数据会被重新提交

get 可被收藏为书签,post不可以

8.http 与 https 的区别

http 是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl 加密传输协议

9.http 是什么?

http 是超文本传输协议,它是TCP/IP协议的一个应用层协议,用于定义web 浏览器与web 服务器之间交互数据的过程以及通讯的格式

你可能感兴趣的:(常见的前端面试问题及解析(一))