微信小程序面试题 2021春夏面试题整理二
这家公司面试侧重框架和项目经验,要求比较高。
一、对Vue家族桶的认识?
Vue系列水桶包括:vue-router、vuex、vue-cli、axios和一些UI框架
二、将微信小程序部署到服务器的具体步骤?
云服务器准备
域名准备
申请ssl证书
配置云服务器
域名注册
在小程序上绑定域名
三,小程序的生命周期功能
加载onLoad页面时触发,只调用一次获取当前页面路径中的参数。
当onShow页面显示/切入前台时触发,一般用于发送数据请求;
onReady页面第一次呈现时触发,只会被调用一次,这意味着页面可以与视图层交互。
当现有页面隐藏/切入背景时触发,例如底部标签切换到其他页面或小程序切入背景。
卸载onUnload页面时触发,例如重定向到或导航回其他页面。
第四,一句话对闭包的理解
闭包是可以读取其他函数内部变量的函数,或者在外部调用子函数,子函数所在的父函数的作用域不会被释放。
动词 csrf和xss的网络攻击与防范
CSRF:跨站点请求伪造可以理解为攻击者窃取用户的身份,并以用户的名义发送恶意请求。例如,用户登录网站后,会立即访问攻击者用来在另一个选项卡页面上创建攻击的网站。该网站要求访问刚登录的网站并发送恶意请求。这时,CSRF应运而生。例如,这个制造攻击的网站使用了一张图片。不过这个图片的链接可以修改数据库。此时,攻击者可以以用户的名义操作数据库。防御方法是:使用验证码,检查https头中的引用,并使用令牌
XSS:跨站点脚本攻击是指攻击者在用户浏览网页时通过注入恶意脚本进行攻击,如获取cookies或其他用户身份信息,可分为存储型和反射型。存储类型是指攻击者输入一些数据并将其存储在数据库中,其他浏览器看到后会进行攻击。反射类型不存储在数据库中,这往往表明攻击代码被放在url地址的请求参数中。在防御的情况下,为cookies设置了httpOnly属性。
不及物动词Cookie、会话存储和本地存储的区别和大小
共同点:都保存在浏览器端,同源
Cookie:Cookie数据总是在同一个http请求中携带,也就是说,cookie在浏览器和服务器之间来回传递。SessionStorage和localStorage不会自动将数据发送到服务器,而只会将其保存在本地。Cookie数据也有路径的概念,可以限制cookie只属于某个路径,存储大小只有4K左右。
SessionStorage:只在当前浏览器窗口关闭之前有效,所以自然不可能持久。localStorage:它总是有效的,并且总是在窗口或浏览器关闭时保存,因此它被用作持久数据。cookie仅在设置的cookie过期时间之前有效,即使窗口或浏览器已关闭。
本地存储:本地存储在所有同源窗口中共享;Cookie也在所有同源窗口中共享。
解释cookie的功能:
保存用户登录状态。例如,用户id存储在cookie中,这样当用户下次访问该页面时,就不需要再次登录。现在很多论坛和社区都提供这样的功能。Cookies还可以设置过期时间。当过期时间到期时,cookies将自动消失。因此,系统可以经常提示用户保持登录状态:常用选项有一个月、三个月、一年等。
七.跨领域理解
跨域意味着浏览器无法执行其他网站的脚本。它是由浏览器的相应策略引起的,是浏览器强加的安全限制。
如何实现跨域:
JSONP:跨域通信是通过动态创建脚本,然后请求一个带引用的URL来实现的。Document.domain+iframe跨域:两个页面通过js强制将Document.domain设置为基本主域,从而实现同域。
Location.hash+iframe跨域:A想和B跨域通信,通过中间的页面c来实现,在三个页面中,不同的域使用iframe的Location.hash来传递值,同一个域通过直接js访问进行通信。
Window.name+iframe跨域:跨域数据通过iframe的src属性从外域传输到本地域。
跨域消息:可以跨域操作的窗口属性之一。
CORS:可以在服务器端设置访问控制允许源,但不能在前端设置。要携带cookie请求,需要设置正面和背面。
代理跨域:设置代理服务器,实现数据转发
八、基于令牌的认证方法
使用基于令牌的身份验证方法,不需要在服务器上存储用户的登录记录。大致过程如下:
客户端使用用户名和密码请求登录
服务器接收验证用户名和密码的请求
验证成功后,服务器将颁发一个令牌,然后将该令牌发送给客户端
收到令牌后,客户端可以将其存储,例如存储在Cookie或本地存储中
每次客户端向服务器请求资源时,都需要携带服务器颁发的令牌
服务器接收请求,然后验证客户端请求中携带的令牌。如果验证成功,它会将请求的数据返回给客户端
九.vue中计算方法和方法的区别及应用场景
计算是属性调用,方法是函数调用
计算有缓存功能,但方法没有
通常,computed使用简单表达式来简单地转换内容,这比filters简单地转换内容更有用。
Computed有缓存功能,在系统刚运行时调用一次。只有当计算结果改变时,才会调用它。
对于用方法编写的方法,调用方法必须具有。methods方法页在刚加载时被调用一次,以后调用时才会被调用。
十、谈谈对箭头功能的理解和使用
使用箭头函数,这并不指向窗口,而是指向其父窗口
不能使用参数对象
不能用作构造函数,这意味着不能使用新命令,否则将引发错误
不能使用yield命令,因此箭头函数不能用作Generator函数
使用场景
十一、《无极》中拒绝和抓住的区别是什么
Reject用于抛出异常,catch用于处理异常
拒绝是承诺的方法,捕捉是承诺实例的方法
拒绝后,肯定会进入第二次回调。如果没有写入第二个回调,它将进入catch
如果网络出现异常,将直接进入catch,而不是进入当时的第二次回调
十二、解释符号
符号是ES6引入的一种新的原始数据类型,用来表示一个唯一的值。
主要用作属性名,防止重名,因为使用字符串作为属性名很容易在无意中造成重名;
本期问答:vue路由与价值传递。在下面的评论区留言,写下你的答案。