Java教程

基于TOP-K的面试题解总结(5)

本文主要是介绍基于TOP-K的面试题解总结(5),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  21.移动端适配有哪些方案?
  • rpx
  • rem,em
  • 百分比
  • 获取当前浏览器窗口宽度高度等信息
  • Hybrid
  • Flutter框架
  22.localstorage 与 cookie 的区别是什么?
  • localstorage:
    • 主要作为本地存储使用,浏览器支持5M存储大小,属于永久性存储
    • 可以将第一次请求的数据直接存储到本地
    • 不会被爬虫抓取到
  • cookie:
    • 只能存储文本,大小限制4KB左右
    • 数量限制:一个浏览器大概50条左右
    • 面向会话存储,一般会在会话结束后删除。可以设置过期时间
  • sessionstorage:
    • 扩大型cookie
    • 面向会话层,会话结束后自动删除
  23.简述 Javascript 中 this 的指向有哪些?
  • 默认绑定:
    • 严格模式下,默认this指向为undefined
    • 非严格模式下,默认this指向全局,即windows
  • 显式绑定:
    • call(obj, arg1, arg2,...)
    • apply(obj,[arg1, arg2,...])
    • bind(obj,...args)
  • 隐式绑定:
    • 在声明的函数体内,this指向被引用的函数对象
  • new绑定:
    • 通过new生成的实例中,this指向该实例对象
  • 箭头函数:
    • 箭头函数的this指向父级作用域
  24.简述图片的懒加载原理
  • HTML中图片通过<img>引入,由src属性请求。所以懒加载就是在图片没有进入到可视区的时候不给src赋值,等图片区域进入可视区的时候,再给src赋值去请求图片。
  • 将图片的地址放在data-set属性中,由于图片并没有在src中,并不会发送http请求。比较图片到整个页面距离(Y)和  页面滑动的距离 (X) +  浏览器可视区域的大小(Z) ,Y小于两者之和,则图片就显示出来,将图片的data-set属性换为src属性
  25.什么是跨域,什么情况下会发生跨域请求?
  • 跨域原因:
    • 浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都会产生跨域问题
    • 由于浏览器的同源策略限制,同源即为两个页面具有相同的协议,主机和端口号
  • 跨域:当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
  • 解决方法:
    • 使用Nginx代理进行端口监听,然后将请求代理转发到相同端口
    • 使用Ajax的jsonp
      • 缺点:请求方式只能是get请求
    • 使用jQuery的jsonp
      • 优点:get请求和post请求
      • 缺点:返回的仍是jsonp格式
  26.简述浏览器的垃圾回收机制
    • 标记清除:
      • 垃圾收集器给内存中的所有变量都加上标记,然后去掉环境中的变量以及被环境中的变量引用的变量的标记。在此之后被加上标记的变量即为需要回收的变量。
    • 引用技术(废弃)
      • 跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型赋值给该变量时,则这个值的引用次数就是1。相反,如果包含对这个值引用的变量又取得了另外一个值,则这个值的引用次数就减1。当这个引用次数变成0时,则说明没有办法再访问这个值了,因而就可以将其所占的内存空间给收回来。这样,垃圾收集器下次再运行时,它就会释放那些引用次数为0的值所占的内存。该方式会引起内存泄漏的原因是它不能解决循环引用的问题
    • V8的垃圾回收机制
      • 分为新生代和老生代两个垃圾回收器
        • 新生代:对象存活时间短,经过两次垃圾回收还存活的对象将会移到老生区中
        • 老生代:对象占用空间大,存活时间长
这篇关于基于TOP-K的面试题解总结(5)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!