自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js中的微任务和宏任务

需要注意的是,不同的 JavaScript 引擎可能会存在一些差异,有些任务可能既可以作为微任务,也可以作为宏任务,比如在一些浏览器中,使用 MutationObserver 监听 DOM 变化时,它会被视为一个微任务,但是在一些 Node.js 版本中,它会被视为一个宏任务。需要注意的是,微任务比宏任务优先级要高,因此在同一个任务中,如果既有微任务又有宏任务,那么微任务会先执行完毕。而在不同的任务中,宏任务的执行优先级要高于微任务,因此在一个宏任务执行完毕后,它才会执行下一个宏任务和微任务队列中的任务。

2023-09-25 21:42:53 91 1

原创 WeakMap 和 Map的区别

5. WeakMap 对象的主要应用场景是需要与另外一个对象关联,并且不想影响到这个对象的垃圾回收机制,以避免内存泄漏。例如,将对象存储在 WeakMap 中,可以确保这个对象只在其他地方仍然被引用时才被保留,否则会自动被删除,从而避免内存泄漏。3. Map 中的键值对是强引用关系,即只要 Map 中的键或值存在,Map 对象就会一直保留这个键值对,不会被垃圾回收。而 WeakMap 中的键值对是弱引用关系,如果 WeakMap 的键不再被引用,那么这个键值对就会被自动删除。

2023-09-25 17:23:40 955 1

原创 new关键字的作用

在上述代码中,我们定义了一个Person构造函数,它接受name和age两个参数,并将它们赋值给新创建的对象的属性。然后,我们使用new关键字分别实例化了person1和person2两个Person对象。通过使用new关键字,我们可以实例化一个类或构造函数,然后使用这个实例来访问类或构造函数中定义的属性和方法。原文链接:https://blog.csdn.net/weixin_45724850/article/details/131730365。执行构造函数中的代码,初始化对象的属性和方法。

2023-09-25 17:20:57 138 1

原创 在JS中如何判断两个对象是否相等

在上面的例子中, Object.is(obj1, obj2) 返回 false ,因为 obj1 和 obj2 是两个不同的对象,而 Object.is(obj1, obj3) 返回 true ,因为 obj1 和 obj3 引用了同一个对象。在上面的例子中, obj1 和 obj2 的属性值相同,但它们是不同的对象,因此它们的 === 比较返回 false。如果你只是需要比较两个对象的属性是否相等(不比较引用地址),你可以使用循环或 Object.keys 方法来获取对象属性的列表,并比较它们的值。

2023-09-25 16:55:55 1507 1

原创 JavaScript 判断数据类型的方法

在 JavaScript 里 使用 typeof 来判断数据类型,只能区分这些类型,即 “ number ” , “ string ” , “ undefined ” , “ boolean ” , “ object ”, “function”。从上述结果可以看出:只有引用数据类型(Array,Function,Object)被精准判断,其他(数值Number,布尔值Boolean,字符串String)字面值不能被instanceof精准判断。// 可以是call,也可以是apply,这里以call。

2023-09-25 16:48:27 26 1

原创 【无标题】

总结:1 、第一种和第二种函数的定义的方式其实是第三种new Function 的语法糖,当我们定义函数时候都会通过 new Function 来创建一个函数,只是前两种为我们进行了封装,我们看不见了而已,js 中任意函数都是Function 的实例。这种定义方式,会将函数声明提升到该函数所在作用域的最开头,也是就无论你在这个函数的最小作用域的那儿使用这种方式声明的函数,在这个作用域内,你都可以调用这个函数为你所用。首先弄明白何为函数呢,按照犀牛书的说法,函数简单的说就是重复执行的代码块。

2023-09-25 16:43:24 17 1

原创 前端大屏的几种适配方案

打开js文件,将设计稿的宽度(1920px)平均分成24等份,每一份为80px。将这个值设置为html字体大小,既1rem = 80px;tips:rem是根据html字体大小来计算的,假如html字体为16px,则1rem就等于16px;安装cssrem插件,根节点的字体大小设置为80px。这个是px单位转rem的参考值。大屏是适配是前端开发必不可少的技能,适配各种大屏也是为了给用户更好的体验。这样的话放我们在书写px的适合,这个插件就会自动帮我们转化成rem。我们是1920*1080的设计稿。

2023-09-25 16:38:12 362 1

原创 js中获取对象属性的两种方法和区别

而对象的键名则是一个比较随意,可以自定义的。console.log(person.myName) // undefined,使用.访问,不会取出myName的值,会在person对象上查找键名为"myName"的属性值,因为没有所以肯定也找不到了。对象的存储时键值对形式的存储,一般情况下[]适用于任何形式的取值,但是.并不一定适用于所有的情况,下边介绍两种情况的区别。// 这里定义一个myName,值为对象属性中的一个键名,在这里是直接定义的,但是在开发环境中可能是接手的其他的可变化的值。

2023-09-25 16:34:35 608 1

原创 浅拷贝与深拷贝的几种方式

该方法第一个参数是新对象,第二个参数是旧对象,旧对象中的属性值如果也是对象,那么新对象只是拷贝了内存地址。四、for循环遍历对象,将旧对象的属性值依次赋值给新对象,如果旧对象中属性值是一个对象,也只是浅拷贝。将旧对象的变量名直接赋值给新的对象变量,那么旧对象的属性值一改变,新对象也会改,因为只拷贝了内存地址。运用扩展运算符将旧对象在一个新的空对象中展开,如果旧对象中的属性值是对象,那么新对象也是浅拷贝而已。//通过js的内置对象JSON来进行数组对象的深拷贝。一、通过递归的方式实现深拷贝。

2023-09-25 16:33:45 23 1

原创 深拷贝与浅拷贝

浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。对象是保存在堆内存中的, 每创建一个新对象,就会在堆内存中开辟一个新的空间, 变量保存的是对象的内存地址(对象的引用)- 3 ,基本数据类型的数据,变量是直接保存他的值,变量与变量之间是相互独立的,修改一个变量不会影响其他的变量,深拷贝: 她在栈内存中仅仅是存了一个引用的地址,而真正的数据存在堆内存中 ,完全是拷贝了一个新的对象,

2023-09-25 16:29:37 29 1

原创 js中堆和栈的区别和浏览器的垃圾回收机制

当这个引⽤次数变为0时,说明这个变量已经没有价值,因此,在在机回收期下次再运⾏时,这个变量所占有的内存空间就会被释放出来。⽽局部变量声明在函数中,它的⽣命周期从函数执⾏开始,直到函数执⾏结束,在这个过程中,局部变量会在堆或栈中存储它们的值,当函数执⾏结束后,这些局部变量不再被使⽤,它们所占有的空间就会被释放。当我们想要访问引用类型的值的时候,需要先从栈中获得对象的地址指针,然后,在通过地址指针找到堆中的所需要的数据(保存在堆内存中,包含引用类型的变量实际上保存的不是变量本身,而是指向该对象的指针)。

2023-09-25 16:25:14 119 1

原创 ES6新特性

在 ES6 中,添加了Object.is()、Object.assign()、Object.keys()、Object.values()、Object.entries()等方法。------难理解看实例。includes()方法------是查看数组中是否存在这个元素,存在就返回true,不存在就返回false。padStart()/padEnd(),用参数字符串按给定长度从前面或后面补全字符串,返回新字符串。every()方法------数组所有值都符合条件才会返回true,有一个不符合返回false。

2023-09-25 16:20:24 28 1

原创 export default 和 export 区别:

其实此处相当于为sex变量值"boy"起了一个系统默认的变量名default,自然default只能有一个值,所以一个文件内不能有多个export default。//原本直接export sex外部是无法识别的,加上default就可以了.但是一个文件内最多只能有一个export default。3.在一个文件或模块中,export、import可以有多个,export default仅有一个。4.通过export方式导出,在导入时要加{ },export default则不需要。

2023-09-25 16:10:54 43 1

原创 Vue中import和export导入导出有时需要用花括号的情况

我上面的Index里面正是使用export default的方法,而message则是用的export const message。使用Vue时发现程序中的import导入时有的用了花括号,有的未用。于是自己使用时就没有带上花括号,最后运行不起来,调试发现是缺少花括号的问题。3. 将整个模块当作单一对象进行导入,使用*号不用花括号,该模块的所有导出都会作为对象的属性和方法存在。1. 导入部分引入的是default不用花括号,非default时,要使用花括号。全部导入时不用花括号,导入部分时使用花括号。

2023-09-25 16:09:02 517

空空如也

空空如也

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

TA关注的人

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