时隔半年,重新面试(复习曾经会但忘记的)

localStorage 和 sessionStorage 的区别

localStorage和sessionStorage所使用的方法是一样的,下面以sessionStorage为栗子:

ini 复制代码
var name='sessionData';
var num=120;
sessionStorage.setItem(name,num);//存储数据
sessionStorage.setItem('value2',119);
let dataAll=sessionStorage.valueOf();//获取全部数据
console.log(dataAll,'获取全部数据');
var dataSession=sessionStorage.getItem(name);//获取指定键名数据
var dataSession2=sessionStorage.sessionData;//sessionStorage是js对象,也可以使用key的方式来获取值
 console.log(dataSession,dataSession2,'获取指定键名数据');
sessionStorage.removeItem(name); //删除指定键名数据
  console.log(dataAll,'获取全部数据1');
 sessionStorage.clear();//清空缓存数据:localStorage.clear();
  console.log(dataAll,'获取全部数据2');  

两者区别

  1. localStorage和sessionStorage的差别一个是永久保存在浏览器里面,一个是关闭网页就清除了信息。

  2. localStorage可以用来跨页面传递参数,sessionStorage则不可以。origin(源)相同的页面,sessionStorage是无法传递的。

  3. sessionStorage用来保存一些临时的数据,防止用户刷新页面之后丢失了一些参数。

Promise相关原理

promise中有三种状态

  • pending
  • fufilled
  • rejected

当 pending -> fufilled 或者 pending -> rejecte 状态改变后,状态就无法再变化了。

常见的promiseAPI

  • Promise.all

接收一个 promise数组,当所有promise都是成功状态,则返回一个成功状态的数组,否则当其中一个promise执行失败,则会catch 第一个执行失败的promise ,并返回原因。

  • Promise.allSettled

与all方法很像,不同的是,不会因为其中一个promise 失败了,就停止执行,而是等所有promise都完成后,方法携带promise状态的数组。

如下:

lua 复制代码
[
  { status: 'fulfilled', value: 3 },
  { status: 'rejected', reason: 'foo' }
]
  • Promise.race

接受一个 promise 数组,返回第一个完成(无论失败还是成功)

有点类似于赛马,看哪匹马跑得最快(哈哈哈)

相关推荐
程序员黑豆4 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
To_OC4 小时前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript
GreenTea5 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
码匠许师傅5 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
浮生望5 小时前
前端API工程化:用 Mock 数据与 Axios 配置实现独立于后端的并行开发
前端
万少5 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
波波0076 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
Brown.alexis6 小时前
es6知识点1-自备使用
前端·ecmascript·es6
小爬的老粉丝7 小时前
JavaScript 纯前端预览 WPS:先识别容器,再路由解析器
前端·javascript·wps
Thecozzy8 小时前
大厂 AI Coding 面试大招
人工智能·面试·职场和发展