1,你项目里用到第三方登录涉及的oAuth(JWT)协议的实现原理,以及你本地的实现原理,第三方登录怎么样保证安全性
答:oAuth就是开放的授权,第三方登录,就是本地的项目跳转到第三方登录去访问,比如登录第三方qq,先输入用户名密码去登录后获得一个code,第三方再返回一个虚拟账户,然后再去第三方请求token,设置有效期;安全性的保证就是设置有效期,生成虚拟账户正常登录访问。
2,说下快排完整性
答:快速排序,一般会以第一个为准,后面的和前一个相比,哪个小排在前面,依次递归执行;
3,react和vue的区别,你开发如何选择技术栈
答:1,生命周期不一样;2,模板语法不一样,react是jsx语法,更接近js,js和html可以混搭,Vue是允许采用简洁的模板语法将数据渲染到DOM中;3,父子组件传值方式不一样;
4,Vue的理解
答:Vue是一个MVVM的轻量级的架构,以双向数据绑定为核心,专注于视图层来驱动,相关的数据也对应驱动。
5,Vue 的双向数据绑定原理
答:核心是通过属性劫持来达到数据监听,主要是object.defineProperty()劫持属性,然后数据变化时就触发监听器,对应的数据通过观察者模式进行回调,进行更新。
6,vue怎么样实现数组绑定
答:v-bind
7,js 的继承
答:原型链property;构造函数call;原型链和call组合继承;原型式继承;寄生式;组合继承;
继承主要是解决函数的属性和方法的延续,是否重用,是否组合,是否会相互影响,各取所需。
8,call和apply的区别
答:都是改变函数体内的this指向,区别是参数的不同,第一个参数都是this当前的对象,call后面的参数是单个的,apply后面的参数是数组或对象
9,闭包的作用理解,以及那些地方用过闭包,以及闭包的缺点,如何实现闭包
答:闭包就是一个函数内部再包含一个函数,保护内部函数的私有属性;
一般封装公共函数方法的时候会用闭包,保护内部变量,以免被污染回收;
缺点就是内部变量不会被回收,影响资源占用;
在函数或者对象内部,再定义一个子函数方法;
10,跨域方法以及怎么样实现的与原理
答:跨域就是违背了同源策略(协议,域名,端口),URL访问不到,就造成了跨域,找不到对应的资源;
实现跨域的办法,要么是服务端设置接收域名为*,客户端可利用jQuery的jsonp模式,或者动态创建script标签引入