二叉树:二叉树是一种特殊的树,有以下两个特征:
二叉树的每个结点的度都不大于2;
二叉树每个结点的孩子结点次序不能任意颠倒。
Jquery常用的插件
拾色器,富文本,表情库,手势库,表单验证,轮播,全屏,放大镜,懒加载
Es6新特性
let0 import from const 箭头函数 class构造函 模板字符串 解构赋值 for...in for...of set map
Vue实现数据双向绑定的原理:
一个js对象传入vue实例作为data选项时,vue会遍历该对象上的所有属性,并使用
Object.defineProperty把这些属性全部转为 getter/setter,能被vue追踪依赖,在属性被访问和修改时通知变更。
什么是冒泡排序
两次循环,外层循环控制比对轮数,内层循环比对值,当下一个值小于当前值,交换位置
请描述一下 cookies,sessionStorage 和 localStorage 的区别?
cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。
sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
存储大小:
cookie数据大小不能超过4k。
sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
有期时间:
localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
sessionStorage 数据在当前浏览器窗口关闭后自动删除。
cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
如何将浮点数点左边的数每三位添加一个逗号,如12000000.11转化为『12,000,000.11』?
function commafy(num){
return num && num
.toString()
.replace(/(\d)(?=(\d{3})+\.)/g,function($1, $2){return$2+','; });
}
怎么实时更新?
Websocket:
浏览器通过 JavaScript 向服务器发出建立WebSocket 连接的请求,
连接建立以后,
客户端和服务器端就可以通过 TCP 连接直接交换数据。
轮询:
在一个定时器内部获取服务器的数据
在服务器返回数据较多时,不建议使用轮询 建议使用Websocket
描述原型和原型链
原型:每一个通过new声明的变量都有一个prototype属性。这个属性指向原型对象,在原型对象上添加的方法每个通过这个类生成的实例都能够使用。每一个对象类型的变量都会一个__proto__,此属性的属性值为当前实例所属的原型(prototype)
原型链:当通过new关键字生成的变量调用方法,而他自身没有这个方法时,该变量会沿着它的prototype逐级向上查找直到Object, 查找的过程就是一个原型链
路由的页面里面怎么接收上一个页面传过来的参数
this.$route.query
this.$route.params
get 和 post 请求区别
get从服务器获取数据 post向服务器发送数据
post比get安全 因为get请求url是可见的
get传输数据少受url限制 post可以传输大量数据
1. post 请求有请求体,所有的数据传递都在请求体中
4. get 请求是幂等的,多次请求返回的结果是一样的。不会对服务器端数据造成副作用。
5. get 请求可以加入收藏夹做缓存
6. post 请求的请求体中传递的数据格式是由请求头中的 content-type 属性决定
事件总线:
EventBus 又称为事件总线。在main.js初始化EventBus或者创建eventbus.js文件 通过EventBus$emit推送数据,EventBus$on接收数据 ,EventBus$off移除 事件总线详细介绍
vue 组件的生命周期和组件传值和组件操作
父组件-子组件 : 在子组件标签上绑定自定义属性名,值是父组件需要传递的数据,子组件内部通过props属性接收属性名
子组件-父组件 : 在子组件标签上绑定自定义事件,子组件内部通过$emit给该事件推送数据,父组件内部通过函数参数接收
平行组件/兄弟组件
创建一个空的实例vm通过$emit来保存a组件和b组件的数据,c组件在视图渲染之后通过$on来获取保存的数据
父传子 通过属性进行传递
子传父 通过事件派发
平行组件 使用eventbus事件总线.在代码中创建一个空白的vue实例,所有的事件派发和监听都在此实例上进行。
父组件操作子组件: 给子组件添加一个人ref属性,自定义属性值,父组件通过this.$refs.自定义的属性值来获取子组件
子组件操作父组件: 直接this.$parent.可获取
高阶组件就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件。
react 生命周期函数
答案:
· 初始化阶段:
getDefaultProps:获取实例的默认属性
getInitialState:获取每个实例的初始化状态
componentWillMount:组件即将被装载、渲染到页面上
render:组件在这里生成虚拟的 DOM 节点
componentDidMount:组件真正在被装载之后
· 运行中状态:
componentWillReceiveProps:组件将要接收到属性的时候调用
shouldComponentUpdate:组件接受到新属性或者新状态的时候(可以返回 false,接收数据后不更新,阻止 render 调用,后面的函数不会被继续执行了)
componentWillUpdate:组件即将更新不能修改属性和状态
render:组件重新描绘
componentDidUpdate:组件已经更新
· 销毁阶段:
componentWillUnmount:组件即将销毁
解析:有三大阶段,每阶段的细分 5-5-1