- 博客(30)
- 收藏
- 关注
原创 实现深拷贝还在用JSON.parse(JSON.stringfy(obj))?带你用JS实现一个完整版深拷贝函数
实现深拷贝还在用JSON.parse(JSON.stringfy(obj))?带你用JS实现一个完整版深拷贝函数目录实现深拷贝还在用JSON.parse(JSON.stringfy(obj))?带你用JS实现一个完整版深拷贝函数1.JSON序列化实现深拷贝2.自定义深拷贝函数2.1.基本功能实现2.2.其他类型处理2.3.循环引用处理1.JSON序列化实现深拷贝在JS中,想要对某一个对象(引用类型)进行一次简单的深拷贝,可以使用JSON提供给我们的两个方法。JSON.stringfy():可以
2022-04-10 17:59:53
1920
原创 掌握JavaScript中的迭代器和生成器,顺便了解一下async、await的原理
相信很多人对迭代器和生成器都不陌生,当提到async和await的原理时,大部分人可能都知道async、await是Promise+生成器的语法糖,其原理具体是怎么做的呢?下面通过这篇文章带你详细了解一下迭代器和生成器,以及带你从生成器一步步推导到async和await。
2022-04-04 18:43:58
1456
原创 由浅入深,从掌握Promise的基本使用到手写Promise
在ES6之前,对于一些异步任务的处理始终没有很好的方案可以解决,处理异步的方案可谓是十分混乱,在业务需求下异步请求的套用,就形成了回调地狱,严重影响代码的阅读性。而Promise的出现,给我们统一了规范,解决了之前处理异步任务的许多痛点,并且它友好的使用方式,使之成为了JavaScript一大重点,同时也是面试的高频问点,下面就一起来全面认识一下Promise吧。
2022-04-03 17:41:33
1562
原创 由浅入深,带你用JavaScript实现响应式原理(Vue2、Vue3响应式原理)
由浅入深,带你用JavaScript实现响应式原理(Vue2、Vue3响应式原理)目录由浅入深,带你用JavaScript实现响应式原理(Vue2、Vue3响应式原理)前言1.Object.defineProperty2.Proxy2.1.Proxy的基本使用2.2.Proxy的set和get捕获器2.3.Proxy的apply和construct捕获器2.4.Proxy所有的捕获器3.Reflect3.1.Reflect有什么作用呢?3.2.Reflect的基本使用3.3.Reflect上常见的方法3.
2022-03-27 23:34:14
1716
4
原创 ES6-ES12部分简单知识点总结,希望对大家有用~
ES6-ES12简单知识点总结1.ES6相关知识点1.1.对象字面量的增强ES6中对对象字面量的写法进行了增强,主要包含以下三个方面的增强:属性的简写:当给对象设置属性时,如果希望变量名和属性名一样就可以直接写该变量名;方法的简写:对象中的方法可直接写成foo() {}的形式;计算属性名:对象的属性名可以动态传入,将变量使用[]包裹即可;const obj = { // 1.属性简写 name, age, // 2.方法简写 foo() { console.
2022-03-27 23:25:47
1478
原创 JavaScript面向对象(3)—深入ES6的class
在前面一篇中主要介绍了JavaScript中使用**构造函数+原型链**实现继承,从实现的步骤来说还是比较繁琐的。在ES6中推出的class的关键字可以直接用来定义类,写法类似与其它的面向对象语言,但是使用class来定义的类其本质上依然是构造函数+原型链的语法糖而已,下面就一起来全面的了解一下class吧。
2022-03-15 21:27:39
920
原创 JavaScript面向对象(2)—继承的实现
面向对象的三大特性:封装、继承和多态。上一篇我们简单的了解了封装的过程,也就是把对象的属性和方法封装到一个函数中,这一篇讲一下JavaScript中继承的实现,继承是面向对象中非常重要的特性,它可以帮助我们提高代码的复用性。继承主要的思想就是将重复的代码逻辑抽取到分类中,子类只需要通过继承分类,就可以使用分类中的方法,但是在实现JavaScript继承之前,需要先了解一个重要的知识点“原型链”。
2022-03-11 22:38:06
2089
原创 JavaScript面向对象(1)—对象的创建和操作
虽然说在JavaScript编程语言中,函数是第一公民,但是JavaScript不仅支持函数式编程,也支持面向对象编程。JavaScript对象设计成了一组属性的无序集合,由key和value组成,key为一个标识符名称,而value可以是任意类型的值,当函数作为对象的属性值时,这个函数就可以称之为对象的方法。下面就来看看JavaScript的面向对象吧。
2022-03-11 22:32:30
2028
原创 JavaScript函数式编程(纯函数、柯里化以及组合函数)
函数式编程(Functional Programming),又称为泛函编程,是一种编程范式。早在很久以前就提出了函数式编程这个概念了,而后面一直长期被面向对象编程所统治着,最近几年函数式编程又回到了大家的视野中,JavaScript是一门以函数为第一公民的语言,必定是支持这一种编程范式的,下面就来谈谈JavaScript函数式编程中的核心概念纯函数、柯里化以及组合函数。
2022-02-20 23:09:22
521
原创 JavaScript中this的绑定规则
我们知道浏览器运行环境下在全局作用域下的this是指向window的,但是开发中却很少在全局作用域下去使用this,通常都是在函数中进行使用,而函数使用不同方式进行调用,其this的指向是不一样的。JavaScript中函数在被调用时,会先创建一个函数执行上下文(FEC),而这个上下文中记录着函数的调用栈、活动对象(AO)以及this等等。那么this到底指向什么呢?下面一起来看看this的四个绑定规则。
2022-02-14 00:01:09
670
原创 JavaScript闭包的那些事~
JavaScript闭包目录JavaScript闭包1.函数在JavaScript中的地位2.JavaScript中闭包的定义3.闭包是如何形成的?4.闭包的访问和执行过程5.闭包的内存泄露6.使用浏览器查看闭包1.函数在JavaScript中的地位在介绍闭包之前,可以先聊聊函数在JavaScript中的地位,因为闭包的存在是与函数息息相关的。JavaScript之所以可以称之为支持头等函数的编程语言,是因为JavaScript中函数是一等公民;函数不仅在JavaScript中扮演着重要的角
2022-02-09 23:44:06
767
1
原创 JavaScript的内存管理
JavaScript的内存管理目录JavaScript的内存管理1.什么是内存管理?2.JavaScript的内存分配3.JavaScript的垃圾回收机制4.两种常见的GC算法4.1.引用计数4.2.标记清除1.什么是内存管理?在了解JavaScript的内存管理之前,可以先大致熟悉一下什么是内存管理,不管什么样的编程语言,在其代码执行的过程中都是需要为其分配内存的。不管什么样的编程语言,以及它用什么方式来管理内存,其内存的管理都具备以下的生命周期:申请内存:分配其需要的内存。使用内存:
2022-02-08 02:05:46
1549
2
原创 JavaScript的执行过程(深入执行上下文、GO、AO、VO和VE等概念)
编写一段JavaScript代码,它是如何执行的呢?简单来说,JS引擎在执行JavaScript代码的过程中需要先解析再执行。那么在解析阶段JS引擎又会进行哪些操作,接下来就一起来了解一下JavaScript在执行过程中的详细过程,包括执行上下文、GO、AO、VO和VE等概念的理解。
2022-01-10 19:59:18
1847
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人