前端知识汇编(持续更新中)

1. 浅析cookie sessionStorage localStorage

详请-> cookie、Web Storage

同:

  • 保存在浏览器端
  • 都有同源限制(cookie:与特定域绑定,不被其他域访问;sessionStorage:与会话绑定;localStorage:来自相同域,子域不行)

异:

  • 所有cookie都会作为请求头部由浏览器发送给服务器(在浏览器与服务器之间来回传递);webStorage只存在浏览器本地;
  • 存储空间大小不同,cookie一般只有4kb;webStorage的大小由浏览器限制,一般有5MB;
  • 生命周期不同。cookie可设置过期时间;localStorage没有手动清除就会一直在;sessionStorage在会话结束时被清掉
  • 应用场景不。Cookie一般用于存储登录验证信息SessionID或者token,LocalStorage常用于存储不易变动的数据,减轻服务器的压力,SessionStorage可以用来检测用户是否是刷新进入页面,如音乐播放器恢复播放进度条的功能。

2. *浅析js数据类型

详请-> JS数据类型(undefined、null、boolean、number、bigInt、string、symbol、object,8种)

js数据类型分两类:

  • 简单数据类型(7种):undefined、null、boolean、number、bigInt、string、symbol
  • 复杂数据类型(1种):object
    (二者最大区别就是他们在内存中的存储方式不同,简单数据类型直接存储在栈中的简单数据,占据空间小;复杂数据类型存储在堆内存中,占用空间大,存取涉及指针)

注意:
BigInt和Symbol都是后面新加的数据类型,实际运用上比较少。

js中Numberr类型只能安全的表示-253+1 和 253-1 任何超出此范围的整数值都可能失去精度。BigInt 是一种内置对象,它提供了一种方法来表示超出 [-253+1, 253-1] 范围的整数。BigInt 可以用任意精度表示整数。

  • BigInt 和 Number 不是严格相等的,但是宽松相等的;
  • BigInt和Number之间不能进行混合操作
  • 最好Number和BigInt不要互相转换

Symbol是原始值,且Symbol实例是唯一、不可变的 。Symbol的用途是确保对象属性使用唯一标识符,不会发生属性冲突的危险。Symbol就是用来创建唯一记号,进而作用非字符串形式的对象属性。可以作为object的key。

3. 浅析js中的闭包

详请-> 闭包
闭包指那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。

  • 闭包形成的原理:作用域链。只要是代码都一个作用域中,写在函数内部的局部作用域,未写在任何函数内部即在全局作用域中;如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域;根据在 [内部函数可以访问外部函数变量] 的这种机制,用链式查找决定哪些数据能被内部函数访问,就称作 作用域链就近原则
  • 闭包带来的问题:由于垃圾回收器不会将闭包中变量销毁,于是就造成了内存泄露,内存泄露积累多了就容易导致内存溢出。

4. *浅析Promise

详请-> Promise
Promise的作用:Promise是异步微任务,解决了异步多层嵌套回调的问题,让代码的可读性更高,更容易维护。

Promise有三种状态·待定pending(初始)兑现resolved拒绝rejected,状态落定后不可逆。resolve 方法的参数是then中回调函数的参数,reject 方法中的参数是catch中的参数。

5. 浅析BFC

详请-> 浅析BFC

  • 定义:BFC(Block Formatting Context)块级格式化上下文,是Web页面一块独立的渲染区域,内部元素的渲染不会影响边界以外的元素。
  • 形成条件:
    float 设置成 left right
    position absolute或者fixed
    overflow 不是visible,为 autoscrollhidden
    displayflex或者inline-block
  • 作用:
    解决外边距塌陷
    解决包含塌陷(解决子级元素外边距会使父级元素塌陷的问题)
    解决当父级元素没有高度时,子级元素浮动会使父级元素高度塌陷的问题
    阻止标准流元素被浮动元素覆盖

6. 浅析Vuex

详请-> 浅析Vuex

  • Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享。
  • State用来存储公共数据源。
  • Mutation用于同步变更state中的数据。
  • Action用于异步变更state中的数据,但是在Action中还是要用过触发Mutation的方式间接变更数据。
  • Getter用于对Store中的数据进行加工处理形成新的数据(类似于计算属性),Store中数据发生变化,Getter中的数据也会变化。
  • moudle属性是将store分割成模块。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块。

7. vue3基础知识汇总

详请-> vue3知识整理

8.Vue Router基础知识整理

详请-> Vue Router基础知识整理

9.Vue3 Vite配置环境变量

详请-> Vue3 Vite配置环境变量

10. 基于Vue3的Axios异步请求

详请-> 基于Vue3的Axios异步请求

11. ES6 Generator函数

详请-> ES6 Generator函数

12. TypeScript知识整理

详请-> TypeScript知识整理

13. js中的遍历(for、forEach、map、filter、reduce、every、some、includes、find)

详请-> js中的遍历(for、forEach、map、filter、reduce、every、some/、includes、find)

  • for
  • foreach
  • map:创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
  • filter:创建给定数组一部分的浅拷贝,其包含通过所提供函数实现的测试的所有元素。filter()过滤方法,会对原数组中的每个元素应用指定的函数,并返回一个新数组,其中包含符合条件的元素。原数组不会受到影响。
  • reduce:对数组中的每个元素按序执行一个提供的 reduce 函数,每一次运行 reduce 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
  • every:测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值,全部满足返回true,只要有一项不满足则返回false。
  • some:测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。只要找到满足的就不再往下遍历
  • includes:判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。
  • find:返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。只要找到满足的就不再往下遍历。

14. 八股文-Vue篇

详请-> 八股文-Vue篇

15. Vue I18n国际化插件

详请-> Vue I18n国际化插件

16. vite-plugin-mock前端自行模拟接口返回数据的插件

详请-> vite-plugin-mock前端自行模拟接口返回数据的插件

17. 【Splitpanes】Vue.js 靠谱、简单并支持触摸的窗格分割器/调整器

详请-> 【Splitpanes】Vue.js 靠谱、简单并支持触摸的窗格分割器/调整器

18. 【Nprogress】页面跳转进度条

详请-> 【Nprogress】页面跳转进度条

19. keep-alive页面切回原滚动位置hook方法

详请-> keep-alive页面切回原滚动位置hook方法

20. Vue3 vite使用postcss-px-to-viewport(适配vant)

详请-> Vue3 vite使用postcss-px-to-viewport(适配vant)

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值