时隔半年,重新面试(复习曾经会但忘记的)
localStorage 和 sessionStorage 的区别
localStorage和sessionStorage所使用的方法是一样的,下面以sessionStorage为栗子:
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');
两者区别
-
localStorage和sessionStorage的差别一个是永久保存在浏览器里面,一个是关闭网页就清除了信息。
-
localStorage可以用来跨页面传递参数,sessionStorage则不可以。origin(源)相同的页面,sessionStorage是无法传递的。
-
sessionStorage用来保存一些临时的数据,防止用户刷新页面之后丢失了一些参数。
Promise相关原理
promise中有三种状态
- pending
- fufilled
- rejected
当 pending -> fufilled 或者 pending -> rejecte 状态改变后,状态就无法再变化了。
常见的promiseAPI
- Promise.all
接收一个 promise数组,当所有promise都是成功状态,则返回一个成功状态的数组,否则当其中一个promise执行失败,则会catch 第一个执行失败的promise ,并返回原因。
- Promise.allSettled
与all方法很像,不同的是,不会因为其中一个promise 失败了,就停止执行,而是等所有promise都完成后,方法携带promise状态的数组。
如下:
[
{ status: 'fulfilled', value: 3 },
{ status: 'rejected', reason: 'foo' }
]
- Promise.race
接受一个 promise 数组,返回第一个完成(无论失败还是成功)
有点类似于赛马,看哪匹马跑得最快(哈哈哈)
转载自:https://juejin.cn/post/7341568997861015579