自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 JS中的堆内存和栈内存以及闭包的产生和作用

JS中的内存分为堆内存和栈内存堆内存作用:存储引用数据类型值栈内存作用:①存储基本数据类型值②提供了JS代码执行的环境堆内存释放(销毁)的方法:让所有引用堆内存空间地址的变量赋值为null(空指针对象)即可。解释:引用数据类型的值是存放在堆内存中的,然后在栈内存中由变量指向其内存地址,因此,如果没有变量指向堆内存,那么浏览器会在空闲时候把堆内存释放掉。栈内存释放的方法:一般情况下,当函数执行完毕,所形成的私有作用域(栈内存)都会自动释放掉(这样在栈内存中存储的值也都会释放掉),但是

2021-03-08 16:46:40 458

原创 全局作用域和私有作用域下带var和不带var的区别以及作用域链的查找机制

以下都是基于ES6之前的语法:即用var声明变量的方式全局作用域加var声明变量和不加var的区别:var a = 1;加var: 本质是变量,只不过window全局对象和全局变量之间存在映射机制,因此,通过var声明a变量后,会自动在window全局对象上追加一个属性a,属性值也为1,即window.a = 1,所以也可以通过使用window.a来获值。a = 1不加var:本质是给window全局对象追加一个属性。注意:var a = 12, b = 13; (逗号分隔声

2021-03-08 15:05:38 247 2

原创 =、==、===的各自含义

= (赋值)一个 ‘=’ 表示 :指针的关联指向。比如:var a = 1;其中,=是指让变量a指向1扩展:初始化变量的步骤: 1. 创建值 2. 创建变量 3. 把变量指向值==(比较)双等号==比较的规则:1、对象和字符串的比较,对象都会转换为字符串。2、null只和undefined、null本身相等,和其他值都不相等,即为false。3、NaN和谁(包括它自己)都不相等(false)。4、剩下的情况都是转换为数字进行比较的。注:这里的对象包括:普通对象{}、数组[]

2021-02-27 16:08:15 8049

原创 js中的数据类型、类型检测、类型转换

js中的数据类型number类型包括以下值:正数、负数、0、小数、NaN、infinity注意:NaN(不是一个有效数字)、infinity(无穷大)是属于number类型扩展:NaN和谁都不相等,包括它自己。即 NaN == 任何值 都为false那如何判断一个数据是否为有效数字?答案:使用 isNaN(值) 如果不是一个有效数字则为true,否则为false类型检测数据类型检测方法:typeof: 检测数据类型的逻辑运算符instanceof:检测是否为某个类的实例cons

2021-02-27 14:45:05 214 1

原创 浏览器的渲染机制、重绘回流、以及前端性能优化

浏览器的渲染机制这里先借用周啸天老师的一张图来大致描述浏览器的渲染机制即浏览器渲染页面的步骤分为五步:处理HTML标记并构造DOM树处理CSS并构建CSSOM树将DOM和CSSOM组合成一个Render树根据构建的渲染树,开始布局。(布局是确定呈现树中所有节点的宽度、高度和位置。渲染树标识显示哪些节点(即使不可见)及其计算样式,但不标识每个节点的尺寸或位置。为了确定每个对象的确切大小和位置,浏览器从渲染树的根开始遍历它。第一次确定节点的大小和位置称为布局,随后对节点大小和位置的重新计算称为

2021-02-27 10:59:34 168

原创 使用json-bigint处理后台返回的大整数问题

首先,后端返回的数据一般是JSON格式的字符串,而axios 会默认自动把后端返回的JSON格式的字符串使用JSON.parse()转换为JS对象,但是由于JS的安全整数范围为因此,如果后端返回的数据中有超过这个范围的数字(如用户的ID),则这种默认的转换方式将会出错,转换过来的数据将会不准确。此时的解决方案:采用第三方包json-bigint,这个包中的parse方法将可以解决这个问题。原理:使用parse()方法后,json-bigint 会把超出 JS 安全整数范围的数字转为一个 Big

2021-02-24 21:02:02 1701

原创 数组中方法的集合,包括every() some() find() filter() findIndex() map()、forEach() reduce() 等方法

js中数组方法集合以下数组的方法是参考https://www.runoob.com/jsref/jsref-obj-array.html,以一种本人觉得相对容易记住的方式进行的整理集合。主要根据接收的参数是否是函数划分第一大类:接收的参数不包含函数length() 、isArray() 、indexOf() ---- 数组的基本信息获取push() 、pop() 、unshift()、 shift() 、splice() ----数组的增删改slice() 、concat()

2021-01-23 22:44:40 162 1

原创 虚拟dom的理解以及diff算法

diff算法的简单理解:精细化比对,最小量更新即新渲染出来的虚拟dom(vdom)和旧的虚拟dom进行diff(精细化比较),算出应该如何最小量更新,最后反映到真正的dom上注意:diff算法是发生在虚拟dom上的,是新旧虚拟dom的对比。虚拟dom的理解用js对象来描述dom的层次结构。注:真实dom中的一切都会在虚拟dom中有对应的属性表示。虚拟dom的最终目标是将虚拟节点渲染到视图上。虚拟节点的产生h函数就是用来产生虚拟节点的(vnode),在vue中,h实际上是createEle

2021-01-23 01:06:45 270

原创 vue中对动态路由的理解、定义以及如何获取传递过来的动态参数

动态路由的理解个人理解:动态路由就是把匹配某种模式下的路由映射到同个组件中,其实本质就是通过url进行传参比如说:有一个商品Goods的组件,我们需要让不同的商品id都映射到这个组件中,此时就需要用到动态路由了。动态路由的配置可以通过两种方式来传递动态参数:(1)、params(2)、query注意:以下代码的演示都是在history的路由模式下params方式的传参配置路由的方式:使用冒号:绑定动态参数。//index.js中配置路由信息const routes = [{ p

2021-01-21 22:15:43 5154 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除