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 服务器之间交互数据的过程以及通讯的格式