前端面试常问

实例1.cookie和session,localStorage,sessionStorage的区别
cookie:1.大小限制4kb,2.安全性:可以分析存在本地进行cookie欺骗3.存储:coolie主要是存在客户端的浏览器4.储存数据的类型:string(字符算类型)
session:1.大小:无限,2.安全性:相对安全3.存储:服务端4.储存类型在object(对象类型)
选择:考虑性能就选择cookie,考虑安全就选择session,建议重要的信息用session(如登录),其他信息可以用cookie
会话机制区别
session会话机制:session会话机制是一种服务端机制,它使用类似于哈希表(可能还有哈希表)的结构保存信息
cookies:会话机制:cookie是服务器存储在本地计算机的小块文本,并随每个请求发送到服务器。web服务器使用http标头将cookie发送到客户端,在客户端通过浏览器解析保存在本地文件,该文件自动将来自同一服务器任何请求绑定这些cookie

本地存储:cookie和localstorage,sessionStorage ,服务端存储:session
1.cookie在浏览器和服务器之间来回传值,而sessionStorge(object)和localStorage(object)紧存在本地,cookie可以通过路径来限制在某个路径下
2.大小:cookie4kb,sessionStorge和localStorage都是无限
3.数据有效性:sessionStorge:紧在关闭浏览器之前有效,localStorage:保存在本地,永久有效,即使关闭浏览器,cookie:在设置有效时间内有效,即使关闭浏览器
4.作用域不同:sessionStrge不在不同的浏览器共享,即使是同一个页面2.localStorge和cookie在所有同源窗口中都是共享的

sessionStorage和js的区别
页面重新刷新或者跳到另外一个页面js重新加载,数据不存,而sessionStorage只要不关闭浏览器数据依然存在

2.一个数组合并去重的函数
let arr1 = [{
name: ‘a’,
count: 2
}, {
name: ‘b’,
count: 3
}]
用function combination(){…}
得出结果{count: 6name: “a”}

3.setTimeout async await 宏任务,微任务
let obj={a:1}
async function addb(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
obj.b=2
resolve(obj)
},0)
})

}
addb().then(v=>{
console.log(v)
})

async function async1(){
console.log(1)
await async2()
console.log(2)
}
async function async2(){
console.log(3)
}
console.log(4)
setTimeout(()=>{console.log(5)})
async1()
new Promise((reject)=>{
console.log(6)
reject()
}).then(()=>{
console.log(7)
})
结果:4
detail-video.vue:140 1
detail-video.vue:145 3
detail-video.vue:151 6
detail-video.vue:142 2
detail-video.vue:154 7
{a: 1, b: 2}
detail-video.vue:154 5
4.vue的生命周期
1.beforeCreat()实例创建之前
created实例创建之后
beforeMount()挂载前
mounted() 挂载
beforeupdate()数据更新之前
updated 数据更新之后
beforeDestroy()销毁前
destroyed()销毁
5.继承
继承是对象和对象之间
想要继承,就必须要提供父类(继承谁,提供继承属性)
function person(name){
this.name=name;
this.sum=function(){
alert(this.name)}
}
person.prototype.age=10;//给构造函数添加 了原型属性
-.原型链继承
function per(){
this.name=“ker”}
per.prototype=new person()
var per1=new per()
per.sun()
console.log(per.age)
console.log(per1 instanceof person);
二.复制继承
Object.prototype.extend=function(obj){
for(var k in obj){
if(this[k]==undefined){
this[k]=obj[k]
}
}
}
var kitty={
color:“yellow”,
climb:function(){
alert(“我在树上”)
}
}
var height={color:“yellow and back”}
height.extend(kitty)
height.climb()
三.原型冒(对象冒充)实现继承
function Cat(color){
this.color=color
this.climb=function(){
alert(“我在树上”)}
}
function Tiger(color){
this.parent=Cat
this.parent.call(this,color)
this.bark=function(){
alert(“孔孔”)}
delete this.parent
}
var heihu=new Tiger(“yello and black”)
for(x in heihu){
console.log(x.toString)
}
6.闭包

https://segmentfault.com/a/1190000006727486

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叮咚前端

你的鼓励是我们的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值