每日面经总结(一日五题系列)

1.  作用域链和闭包
  • 作用域链:js引擎沿着作用域去其上下文环境中查找变量的链条,称为作用域链,作用域是静态的,由代码中函数声明的位置来决定。
  • 闭包:在js中,内部函数总是可以访问其外部函数中声明的变量,当调用一个外部函数返回的内部函数后,即使外部函数已经执行结束了,但内部函数引用外部函数的变量依然存在内存中,这些变量的集合就称为闭包。
2.  v8的垃圾回收机制
V8垃圾回收是分代收集,v8会把堆分为新生代和老生代两个区域

①新生代:副垃圾回收器使用Scavenge算法回收:将新生区分为对象区域和空闲区域,新加入的对象会被放入对象区域,对象区域快被写满时执行垃圾清理操作;将对象区域的垃圾进行标记;将存活的对象复制到空闲区域;将对象区域与空闲区域进行角色翻转

②新生区中经过两次垃圾回收的对象,会被提升为老生代

③ 老生代:标记整理法:从根元素开始遍历,能到达的对象称为活动对象,没有到达的称为垃圾数据;标记整理:将所有存活对象向一端移动,清除掉端边界以外的内存
3.cookie、localStorage、sessionStorage、session的区别
  • cookie与session的区别:①cookie 数据存放在客户端,session 数据放在服务器端

    ②cookie本身不安全(cookie对客户端是可见的,客户端可以读取操作Cookie中的内容。而Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险),考虑安全性应该使用session

    ③若服务器端访问量过大,读取session会有较大性能消耗,考虑减轻性能应该使用cookie
  • web存储方案的对比:

    Cookie最开始出现是为了解决HTTP无状态的问题,用来保存用户登录等状态信息, cookie会自动添加到请求头中传递给服务器端,而localstoragesessionstorage不会自动传递给服务器端,仅在本地保存

    ②存储大小的区别,cookie只有4k大小左右,而另外两个有5M

    ③有效期的区别,cookie在服务器设置的过期时间之前均有效;session storage在浏览器窗口关闭前有效,localstorage永久有效

    ④作用域不同,cookielocalstorage是同源窗口均可以共享,session storage仅在当前浏览器的同源窗口***享,且在浏览器关闭后销毁
4. vue router中hash模式和history模式的实现原理

①    hash模式,url中会带#hash值就是#后面的内容,hash值的变化不会发送请求给服务器端,会在浏览器的访问历史中增加一条记录,通过绑定hashchange事件来监听路由变化并渲染

①    history模式主要使用HTML5pushState()replaceState()这两个api结合window.popstate事件(监听浏览器前进后退)来实现,pushState()向历史记录中添加一条记录,replaceState()将当前历史记录替换,可以实现页面无刷新的跳转,会请求后端服务器,需要和后端发起请求的url一致

区别:①hash模式在路由中会带一个#,不够优雅;②pushState()中相同的url也会添加一条记录,hash模式中,hash值只有不同才会添加到栈中③pushState()的url可以是同源的任意url,但hash只能改变#后面的值,故只可设置同文档的值
5.vue2的diff算法与vue3的diff算法的区别
vue2采用双端比较的方式
vue3引入最长递增子序列算法进行比较:将新元素中需要新增和移动的元素定义一个相对应的数组,数组的值是老元素的下标加1,找到数组中的最长递增子序列,下标存在于最长递增子序列中的元素则不用移动,可保证移动的数量最少
详细实现可参考:Vue3 VDOM DIFF 2_哔哩哔哩_bilibili
【明日预告】

1.     Js的几种模块化规范

2.     进程和线程的区别

3.     修改elementUi样式的方式

4.     Vue组件间通信的方式

5.     Vue router中传参的方式



#面经##校招#
全部评论
大佬,牛啊,啥岗位呢?荣耀有没有兴趣试一下,深圳北京西安南京都可以base,找我随时查看投递进度。荣耀招聘官网https://www.hihonor.com/cn/career/ 内推码:yuhvad
点赞
送花
回复 分享
发布于 2022-08-11 22:34
666
点赞
送花
回复 分享
发布于 2022-08-12 00:12
国泰君安
校招火热招聘中
官网直投
客户端第一次访问服务器端时,会返回给客户端一个sessionid,存储在cookie中,服务器端就是通过sessionid来识别cookie和用户的
点赞
送花
回复 分享
发布于 2022-08-23 08:50 湖北

相关推荐

1 4 评论
分享
牛客网
牛客企业服务