自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS 执行上下文和作用域

与JS 中的作用域一同出现的还有一个执行上下文(execution context)的概念,这两个概念容易混淆,今天就来聊聊他们。

2023-02-03 14:50:26 491 1

原创 React 学习笔记:组件通信

组件为什么需要通信呢?这是因为组件是独立且封闭的单元,默认情况下,组件只能使用自己的数据,但是多个组件之间不可避免的要共享某些数据,为了实现这些功能,就需要打破组件的独立封闭性,让其与外界沟通。

2022-12-11 16:13:37 499

原创 React学习笔记:组件

将页面按照界面功能进行拆分,每一块界面都拥有自己的独立逻辑(组件),这样可以提高项目代码的可维护性和复用性。react 中的组件分为类组件和函数组件。

2022-12-10 21:38:25 713

原创 React 学习笔记:事件处理

React 采用 on+ 事件名的方式来绑定一个事件,注意,这里和原生的事件是有区别的,**原生的事件全是小写 onclick , React 里的事件是驼峰 onClick** 。并且 React 中若想阻止默认事件需要**显示的调用 `e.preventDefault`**,而不是返回 false 。**React 的事件并不是原生事件,而是合成事件**。

2022-12-09 21:36:17 676

原创 React 学习笔记:组件生命周期

生命周期一个事物从创建到最后消亡经历的过程,在这个过程中会有不同的状态(新生儿、少年···),所以在 16.8 版本以前生命周期只有类组件才有,函数组件是没有这个概念的,因为它没有状态,本文就是总结类组件生命周期。了解生命周期有助于我们理解组件的运行方式、完成更复杂的组件功能、分析组件错误原因。

2022-12-08 21:45:15 572

原创 JS 解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,被称为解构赋值。这种写法属于“模式匹配”。这种方式的出现大大提高了代码的扩展性。

2022-12-04 14:00:01 4326

原创 React 学习笔记:JSX 语法

JSX 是 JavaScript XML 的简写,表示了在 JavaScript 中书写 XML 格式的代码。它可以让我们在 React 中创建元素更加简单,并且保留 HTML 代码的结构更直观,提高开发效率。

2022-12-03 13:13:46 245

原创 万字详细总结 Promise(期约)及其方法

本文从Promise产生的历史原因讲起,详细总结了实例化Promise的注意事项及其特点,最后又一个一个详细分析Promise静态方法和实例方法的使用及其特点,Promise入门进阶的保姆级教程。

2022-12-01 15:37:29 516

原创 JS 数据结构:集合

本文着重讲解了集合的特点,并且基于JS对象实现了自己的集合对象,包括取并集、交集、差集、判断是否是子集的方法,很简单,适合新手学习。

2022-11-25 17:10:58 700

原创 JS 数据结构:链表

本文介绍了什么是链表以及他的优缺点,并分别介绍了单链表、双向链表和循环链表之间的细微差别和各自的特点,一些有明显差异的操作都分别给出了图和代码,更易于理解和实践。

2022-11-24 23:12:24 4092

原创 JS 事件

本文讲解了现代事件的处理流程、绑定事件的几种方式和他们各自的特点,最后介绍了事件委托机制,适合新手总结巩固知识。

2022-11-23 21:05:02 816

原创 JS 数据结构:队列

本文基于 JavaScript 开发语言讲解了队列的特点,后又分别实现了顺序队列、循环队列、链队列、双端队列,并分别对他们各自的难点进行了重点讲解。

2022-11-23 20:54:17 2182 2

原创 你能懂的 Reflect 反射

接着上一篇文章《Proxy 代理对象使用详解即原理总结》我们详细介绍了 Proxy 代理对象的使用及其工作原理,这一篇文章将会使用丰富的案例,详细的解释来介绍一下 它的好兄弟 Reflect 反射。

2022-11-21 11:48:31 319

原创 Proxy 代理对象使用详解及原理总结

本篇博客介绍了 Proxy 代理对象如何使用并详细讲解了使用细节,还从 ECMAscript 规范着手为大家剖析 Proxy 的工作原理,让你知其然并知其所以然。

2022-11-20 17:39:21 4043

原创 JS 类总结

本文总结了类的基本知识点,介绍了这个语法糖的构造函数、类成员特性、静态方法,并且着重介绍了类的继承以及在使用 super 关键字的特点,最后讲了如何实现抽象基类。

2022-11-20 12:01:00 595

原创 浅谈 async/await 和生成器

本文详细介绍了 async/await 起源、如何使用、有何特点、注意事项,后来有介绍了一下 JS 中生成器的特点与作用,最后利用生成器的特点实现了一个简单的async/await。

2022-11-17 21:35:09 668

原创 JS 对象总结

本文介绍了 JS 中对象的相关特性,包括属性描述对象、访问器属性和一些常用 API 、后又讲解了增强语法以及对象的迭代方法,其中涉及多个常用 API ,适合新手巩固知识。

2022-11-17 21:05:36 905

原创 JS 函数总结

本篇博详细介绍了 JS 函数部分的内容,尤其是一些不常用的知识点以及一些 ES6 新提出的知识和尾调用优化,适合新手阅读巩固知识。

2022-11-13 20:39:40 715

原创 JS Set 与 weakSet

本篇文章介绍了 Set 的基本 API 如何使用,并且详细介绍了 weakSet 的特点以及什么是弱引用,通俗易懂、适合新手巩固知识。

2022-11-13 16:07:34 264

原创 JS Map 与 weakMap

本篇文章介绍了 Map 的基本 API 如何使用,并且详细介绍了 weakMap 的特点以及什么是弱引用,通俗易懂、适合新手巩固知识。

2022-11-12 21:48:06 1241 1

原创 优雅的 requestAnimationFrame

本文介绍了前端动画的类型css动画和JS动画,简单实现了css动画,并分析了其劣势,后又介绍了早期JS动画的实现方式,分析了使用setTimeout和setInterval实现动画可能出现的问题,由此引出requestAnimationFrame方法,介绍了其用法和优势

2022-11-08 18:18:33 520

原创 浅谈迭代器

本文从迭代器的概念讲起,逐步介绍了迭代器在实际应用中的用法、迭代器暴露的 API,最后简单实现了一个迭代器,非常适合新手入门阅读。

2022-10-24 20:32:42 328

原创 个人博客项目中遇到的 mongodb 操作

本篇博客的内容均是我在开发个人博客的时候所遇到的问题,由于我还是个 mongodb 新手,所以这些操作还是花了些时间的,这里分享出来,希望能帮助到更多新手。

2022-10-22 21:02:36 554

原创 Uncaught (in promise) TypeError: Cannot readproperties of null (reading “addEventListener“)

Uncaught (in promise) TypeError: Cannot readproperties of null (reading "addEventListener")

2022-10-19 14:22:12 3464

原创 [vue warn]: Invalid prop: custom validator check failed for prop “checkedKeys“ .

[vue warn]: Invalid prop: custom validator check failed for prop "checkedKeys" .

2022-10-19 14:11:57 3229

原创 捋一捋 JavaScript 事件循环机制

本文从为什么 javascript 是单线程、异步任务产生的原因、什么是宏任务微任务、javascript 事件循环机制四步讲解,步步深入,最后还分析解答了我在学习过程中遇到的困惑,不信你不懂。

2022-10-13 22:06:15 578

原创 js + 绝对定位实现瀑布流照片墙

js + 绝对定位实现照片墙,原理详解,简单易上手

2022-09-27 22:20:06 1078

原创 Vue2封装评论组件详细讲解

使用vue2 + element ui实现的评论组件,除基本功能外还支持暗黑主题和头像压缩上传

2022-09-25 13:32:42 3823 10

原创 React:初学实现Todolist

React实现Todolist,实现思路,组件拆分,组件间通信

2022-06-04 11:45:02 247

原创 leetcode:189. 轮转数、34. 在排序数组中查找元素的第一个和最后一个位置、724. 寻找数组的中心下标(JavaScript)

文章目录189. 轮转数组思路34. 在排序数组中查找元素的第一个和最后一个位置思路724. 寻找数组的中心下标思路189. 轮转数组给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例 2:输入

2022-05-28 21:50:19 128

原创 leetcode:前 K 个高频元素、删除字符串中的所有相邻重复项、有多少小于当前数字的数字、有效的山脉数组、独一无二的出现次数(JavaScript)

文章目录347. 前 K 个高频元素思路1047. 删除字符串中的所有相邻重复项思路1365. 有多少小于当前数字的数字思路优化继续优化完整代码941. 有效的山脉数组思路1207. 独一无二的出现次数思路347. 前 K 个高频元素给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出

2022-05-27 20:03:30 135

原创 leetcode:62. 不同路径、63. 不同路径 II、343. 整数拆分、96. 不同的二叉搜索树(JavaScript)

文章目录62. 不同路径思路63. 不同路径 II思路343. 整数拆分dp思路非dp思路96. 不同的二叉搜索树思路62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条

2022-05-22 20:06:04 383

原创 leetcode:509. 斐波那契数、70. 爬楼梯、746.使用最小花费爬楼梯(JavaScript)

文章目录509. 斐波那契数思路70. 爬楼梯思路746.使用最小花费爬楼梯思路509. 斐波那契数斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给定 n ,请计算 F(n) 。示例 1:输入:n = 2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1示

2022-05-22 14:56:59 90

原创 贪吃蛇(Typescript)

贪吃蛇(Typescript)项目环境package.json{ "name": "snack", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack", "start": "webpack serve --

2022-05-20 14:08:01 355

原创 Typescript进阶(面向对象的特性)

文章目录面向对象类(class)定义类:使用类:面向对象的特点只读属性(readonly)TS中属性具有三种修饰符属性存取器静态属性this继承类的扩展重写抽象类(abstract class)接口(Interface)泛型(Generic)函数使用泛型类中同样可以使用泛型总结面向对象面向对象是程序中一个非常重要的思想,那么对象到底是什么呢?计算机程序的本质就是对现实事物的抽象,抽象的反义词是具体,比如:照片是对一个具体的人的抽象,汽车模型是对具体汽车的抽象等等。程序也是对事物的抽象,在程序中我们可以表

2022-05-20 12:22:51 206 1

原创 Typescript入门知识

文章目录TypeScript简介TypeScript 开发环境搭建基本类型类型声明自动类型判断编译选项自动编译文件自动编译整个项目总结TypeScript简介TypeScript是JavaScript的超集。它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性。TS代码需要通过编译器编译为JS,然后再交由JS解析器执行。TS完全兼容JS,换言之,任何的JS代码都可以直接当成JS使用。相较于JS而言,TS拥有了静态类型,更加严格的语法,更强大的功能;TS可以在代码执行前就完成代码的

2022-05-20 11:11:25 308

原创 总结 JS 数组及其方法

本文总结 js 数组对象的所有 API ,如何使用,每个 API 都给有例子,通俗易懂、排版清晰,适合新手温习相关知识。

2022-05-18 18:37:18 309

原创 从“小胡子”到 vue 插值语法

本文从模板的发展历程讲起,分析历代模板的优缺点,最后从零开始一步一步带你实现一个简单版的mustache(小胡子)模板引擎。

2022-05-14 17:38:04 509

原创 vue2响应式原理解析并实现一个简单响应系统

本篇博客是本人的学习心得,它将从vue小白的视角深入全面、通俗易懂讲解vue2响应式原理和vue.$set|this.$set的使用场景、用法以及原理

2022-05-14 17:37:41 282

原创 双端 Diff 算法原理解析及 snabbdom 简单实现

本篇博文将从渲染函数讲起并实现一个简单的渲染函数,接着详细梳理双端 diff 算法的实现,辅助大量代码从而帮助你更好地理解,最后详细的总结了 diff 流程。

2022-05-14 17:00:32 421

空空如也

空空如也

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

TA关注的人

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