【前端面试3+1】04浏览器存储、flex布局属性和常用指令、 promise和async await区别

一、浏览器存储

1.1类型:

浏览器数据存储的方式有以下几种:

  • Cookie:小型文本文件,存储在用户计算机上,可以通过浏览器传输到服务器。
  • Web Storage:包括LocalStorage和SessionStorage,可以在浏览器端本地存储数据。
  • IndexedDB:浏览器端的数据库,可以存储大量结构化数据。
  • Cache API:用于存储缓存数据,可以提高网站性能。

1.2.这4种的区别;

CookieWeb StorageIndexedDBCache API
存储位置存储在客户端,每次请求都会将Cookie发送给服务器存储在客户端,不会随每次请求发送给服务器存储在客户端,不会随每次请求发送给服务器存储在客户端,可以缓存网络请求结果、页面资源
存储容量通常限制在4KB5MB左右相对较大,可以存储大量数据根据浏览器设置和硬件限制
生命周期可以设置过期时间,可以长期存储
  • LocalStorage数据永久保存,除非用户清除浏览器数据;
  • SessionStorage数据在会话结束时被清除(关闭标签页或浏览器)
数据永久保存,除非用户清除浏览器数据根据缓存策略设置,可以是临时的或持久
使用场景适合存储少量数据,如用户认证信息、用户偏好设置等适合存储大量结构化数据,如离线应用、复杂数据操作等适合存储大量结构化数据,如离线应用、复杂数据操作等适合提高网站性能,减少网络请求次数,加快页面加载速度

1.3 LocalStorage和SessionStorage的区别

(1)作用域
  • LocalStorage:数据存储在浏览器本地,除非主动清除,否则数据永久保存,即使关闭浏览器也不会丢失
  • SessionStorage:数据也存储在浏览器本地,但在当前会话结束(关闭标签页或浏览器)时会被清除,数据不会长期保留
(2)数据共享
  • LocalStorage:存储的数据在同一浏览器的同一域下共享,即使打开多个相同域名的标签页也可以共享数据。
  • SessionStorage:存储的数据在同一浏览器的同一标签页下共享,不同标签页之间的数据不共享。。
(3)生命周期
  • LocalStorage:数据永久保存,除非主动清除。
  • SessionStorage:数据在当前会话结束时被清除。
(4)使用场景
  • LocalStorage:适合存储持久性数据,如用户偏好设置、本地缓存等。
  • SessionStorage:适合存储会话期间需要使用的临时数据,如表单数据、页面状态等。

 二、flex布局、属性和常用指令

1.定义:

        Flex布局是一种用于设计和排列元素的现代CSS布局方式,它使用弹性盒子模型来实现灵活的布局。

2.常用的Flex布局属性:

  • 容器属性
    • display: flex;:定义一个弹性容器。
    • flex-direction: row | row-reverse | column | column-reverse;:设置主轴的方向。
    • justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;:沿主轴对齐方式。
    • align-items: flex-start | flex-end | center | baseline | stretch;:沿交叉轴对齐方式。
    • flex-wrap: nowrap | wrap | wrap-reverse;:定义是否换行。
  • 项目属性
    • flex-grow: <number>;:定义项目的放大比例。
    • flex-shrink: <number>;:定义项目的缩小比例。
    • flex-basis: <length> | auto;:定义项目的初始大小。
    • flex: <flex-grow> <flex-shrink> <flex-basis>;:简写形式。
    • align-self: auto | flex-start | flex-end | center | baseline | stretch;:单独设置项目在交叉轴上的对齐方式。

3.常用指令:

  • justify-content:定义了项目在主轴上的对齐方式。
  • align-items:定义了项目在交叉轴上的对齐方式。
  • flex:用于设置项目的放大比例、缩小比例和初始大小。
  • flex-direction:定义了主轴的方向。
  • flex-wrap:定义了项目在主轴上是否换行。

4.flex=1 的含义:

        在Flex布局中,设置`flex: 1;`的含义是将一个弹性项目的伸缩因子(flex-grow)设置为1,这意味着该项目会占据剩余空间的所有可用空间

        简单来说,设置`flex: 1;`可以让一个项目占据弹性容器中剩余空间的所有可用空间,使得布局更加灵活和自适应。这在构建响应式布局或者需要弹性伸缩的布局中非常有用。

三、 promise和async await区别

Promiseasync/await
语法使用 .then() 和 .catch() 方法来处理异步操作的结果和错误使用 async 和 await 关键字来处理异步操作,使得代码看起来更像同步代码。
特点Promise 是一种基于回调的异步编程解决方案,通过链式调用 .then() 方法可以处理多个异步操作。async 函数返回一个 Promise,await 关键字可以暂停 async 函数的执行,等待 Promise 解决。
优点相对于回调函数,Promise 更容易管理和组织异步代码,避免了回调地狱。代码结构清晰,易于阅读和维护,避免了回调地狱。
缺点可能会出现回调地狱,需要多次嵌套 Promise。不能在顶层作用域使用 await,需要在 async 函数内部使用。

总结

  • Promise 是一种基于回调的异步编程解决方案,适合处理多个异步操作。
  • async/await 是基于 Promise 的语法糖,使得异步代码更加清晰易读,适合处理单个异步操作或者多个依赖的异步操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/778564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES-LTR粗排模块

ES-LTR粗排模块 官方资源&#xff1a;https://github.com/HeiBoWang/elasticsearch-learning-to-rank Elasticsearch学习排名插件使用机器学习提高搜索相关性排名。它为维基媒体基金会和Snagajob等地方的搜索提供了动力&#xff01; 这个插件有什么功能 此插件&#xff1a; …

I.MX6ULL_Linux_系统篇(25) buildroot文件系统构建

前面我们学习了如何使用 busybox 来构建根文件系统&#xff0c;但是 busybox 构建的根文件系统不齐全&#xff0c;很多东西需要我们自行添加&#xff0c;比如 lib 库文件。在我们后面的驱动开发中很多第三方软件也需要我们自己去移植&#xff0c;这些第三方软件有很多又依赖其他…

ubuntu 不产生core dump 文件

目标机器&#xff1a;UBuntu2004 目的&#xff1a;产生coredump 文件 ulimit -c //未设置之前 0ulimit -c unlimited //大小不受限设置 #将1写入到该文件里 echo 1 > /proc/sys/kernel/core_uses_pid mkdir /corefile #这里一定不要加“” echo “/corefile/core-%e…

5.6 物联网RK3399项目开发实录-Android开发之U-Boot 编译及使用(wulianjishu666)

物联网入门到项目实干案例下载&#xff1a; https://pan.baidu.com/s/1fHRxXBqRKTPvXKFOQsP80Q?pwdh5ug --------------------------------------------------------------------------------------------------------------------------------- U-Boot 使用 前言 RK U-B…

【CKA模拟题】如何用Nslookup轻松检查集群服务名的DNS解析?

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetes Create an nginx pod named nginx-pod-cka using the nginx image, and expose it internally with a service named nginx-service-…

大宋咨询(深圳满意度调查)如何进行客户满意度电话调查

在这个竞争激烈的市场环境中&#xff0c;客户满意度已经成为企业生存和发展的关键。在进行客户满意度电话调查时&#xff0c;关键是要确保调查过程的专业性、准确性和有效性。为了帮助您了解客户的需求&#xff0c;提高客户满意度&#xff0c;以下大宋咨询&#xff08;深圳业主…

Jenkins拉取github项目相关问题

1.私有仓库问题 1.1如果你的仓库是私有的&#xff0c;21年起github就不支持账号密码的方式拉取代码了 那么就需要在github上面创建一个token (classic) 然后在Jenkins代码设置那里 然后应该就可以顺利打包了。 2.找不到pom&#xff08;多了一层文件夹&#xff09;问题 解…

护眼大路灯智商税吗?五款最佳护眼落地灯分享!

大路灯能够提供更加舒适健康的光线&#xff0c;而且大路灯还提供许多能够提高使用便捷度的大路灯&#xff0c;尤其是对于学生党以及上班族来说&#xff0c;大路灯是一款很好的用眼照明小帮手。然而&#xff0c;对于护眼大路灯智商税吗这个问题&#xff0c;很冥想不是&#xff0…

Maven报错:Could not acquire lock(s)

何原因引起 另一个 Maven 进程正在运行&#xff0c;占用了所需的文件锁 Maven 进程意外终止&#xff0c;但文件锁未被释放 解决办法 1. 确保没有其他 Maven 进程在后台运行&#xff0c;可以通过任务管理器结束存在的 Maven 进程2. 重启 IDE 或命令行工具&#xff0c;有时也可以…

1.java openCV4.x 入门-环境搭建

专栏简介 &#x1f492;个人主页 &#x1f4d6;心灵鸡汤&#x1f4d6;大家 &#x1f4f0;专栏目录 点击上方查看更多内容 环境搭建 一、开发环境二、环境搭建1.openCV安装1.下载程序包 2.程序包安装3.搭建项目 三、非必要资源1.扩展库2.cmake 一、开发环境 开发工具 i…

Chapter 4 of Effective C++ (设计与声明)

条款18&#xff1a;让接口容易被正确使用&#xff0c;不易被误用 Make interfaces easy to use correctly and hard to use incorrectly 欲开发一个“容易被正确使用&#xff0c;不容易被误用”的接口&#xff0c;首先必须考虑客户可能做出什么样的错误。 class Date{ public…

华为鸿蒙系统:重塑智能生态,引领科技未来新篇章

原文地址&#xff1a;dlshuhua.com/post/83748.html 在科技迅猛发展的今天&#xff0c;智能设备已成为我们日常生活的重要组成部分。而在这个智能互联的时代&#xff0c;操作系统作为智能设备的核心&#xff0c;其重要性不言而喻。华为鸿蒙系统&#xff0c;作为华为自主研发的…

python面试题(21~35)

21、你最喜欢Python的哪个库&#xff1f; 在处理大量数据时&#xff0c;没有什么比Pandas&#xff08;熊猫&#xff09;更有帮助了&#xff0c;因为Pandas让操作和可视化数据变得轻而易举。 22、举出几个可变和不可变对象的例子&#xff1f; ①不可变意味着创建后不能修改状…

数据库索引及优化

数据库索引及优化 什么是索引&#xff1f; MySQL官方对索引的定义为&#xff1a;索引&#xff08;INDEX&#xff09;是帮助MySQL高效获取数据的数据结构。 索引的本质&#xff1a; 数据结构 为什么要引入索引&#xff1f; 引入索引的目的在于提高查询效率&#xff0c;就好像是…

常用的8个应用和中间件的Docker运行示例

文章目录 1、Docker Web 管理工具 portainer2、在线代码编辑器 Code Server3、MySQL4、Redis5、Nginx6、PostgreSQL7、媒体管理工具 Dim8、Gitlab 1、Docker Web 管理工具 portainer Portainer 是一个轻量级的管理 UI &#xff0c;可让你轻松管理不同的 Docker 环境&#xff0…

软件测试面试——你准备好了吗?

软件的生命周期 计划阶段-〉需求分析-〉设计阶段-〉编码->测试->运行与维护 测试用例&#xff1a;用例ID&#xff0c;测试项&#xff0c;重要级别&#xff0c;优先级别&#xff0c;预置条件&#xff0c;测试标题&#xff0c;操作步骤&#xff0c;预期结果。&#xff08…

【Vue】computed 和 watch 的区别

Watch 上一篇文章事件绑定和计算属性讲了computed属性,现在来讲讲Watches属性 data() {return {counter: 0,name: "",fullname: "",}},watch: {counter(value) {if (value > 50) {this.counter 0}},name(value) {if (value "") {return (t…

无忧微服务:如何实现大流量下新版本的发布自由

作者&#xff1a;项良、十眠 微服务上云门槛降低&#xff0c;用好微服务才是关键 据调研数据显示&#xff0c;约 70% 的生产故障是由变更引起的。在阿里云上的企业应用如茶百道、极氪汽车和来电等&#xff0c;他们是如何解决变更引起的稳定性风险&#xff0c;实现了在白天高流…

Shell教程_不同Shell中变量定义和使用的差异

Shell教程_不同Shell中变量定义和使用的差异 不同的 Unix / Linux Shell (如 Bash, Zsh, Csh 和 Fish 等) 在语法方面存在一些差异, 主要是因为它们采用了不同的设计理念和语法规则。 这些差异在编写 Shell 脚本或在命令行中使用不同的 Shell 时可能会引起困惑和问题。 因此…

ES学习日记(二)-------集群设置

上一节写了elasticsearch单节点安装和配置,现在说集群,简单地说就是在多台服务器上搭建单节点,在配置文件里面增加多个ip地址即可,过程同单节点部署,主要说集群配置 注意:不建议在之前单节点es上修改配置为集群,据说运行之后会生成很多文件,在单点基础上修改容易出现未知问题,…