ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-04-08 22:03:35  阅读:89  来源: 互联网

标签:浏览器 请求 题解 TOP 面试 引用 图片 变量 跨域


  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,面试,引用,图片,变量,跨域
来源: https://www.cnblogs.com/VegatableBird555/p/16120006.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有