自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js如何实现数组扁平化

在 JavaScript 中,数组扁平化是指将一个多维数组转换成一维数组。

2024-06-18 22:26:58 178

原创 什么是回调地域,如何解决回调地域

回调地狱是异步编程中的常见问题,通过使用Promiseasyncawait以及合理的代码封装,可以有效避免回调地狱,使异步代码更加清晰、易读和易维护。这些现代 JavaScript 技术提供了强大的工具,帮助开发者编写简洁、优雅的异步代码。

2024-06-16 16:38:32 273

原创 高阶组件(HOC)

高阶组件本质上是一个纯函数,接受一个组件作为参数并返回一个新的组件。render() {高阶组件在开发中广泛应用于实现代码复用、抽象逻辑、管理状态和处理横切关注点等方面。它们提供了一种优雅的方式来扩展组件的功能,而不需要在每个组件中重复相同的代码。通过合理使用高阶组件,可以显著提高代码的可维护性和可读性,使开发工作更加高效。

2024-06-16 16:17:56 348

原创 ES6新特性

ES6(ECMAScript 2015)引入了许多新的特性和语法,增强了 JavaScript 的功能性和易用性。这些新特性使得 ES6 更加强大和易用,为 JavaScript 的发展注入了新的活力,同时也提高了开发效率和代码的可维护性。let 和 const 关键字用于声明变量,取代了 var 关键字,提供了块级作用域的支持。引入了原生的 Map 和 Set 数据结构,提供了更丰富的数据处理能力。引入了迭代器和生成器的概念,提供了更灵活的迭代和异步编程方式。4. var 声明的变量没有自身作用域。

2024-06-05 22:56:36 162

原创 js数组方法

ES6(ECMAScript 2015)引入了许多新的数组方法,这些方法提供了更便利的操作和处理数组的方式。这些 ES6 新增的数组方法提供了更多便利的数组操作方式,使得 JavaScript 中的数组处理更加灵活和方便。find: 返回数组中满足测试函数条件的第一个元素的值,如果找不到则返回 `undefined`。map: 对数组中的每个元素执行指定的操作,并返回操作后的新数组。fill: 用指定的值填充数组,可以指定填充的起始索引和结束索引。filter: 筛选数组中满足条件的元素,返回一个新数组。

2024-06-05 22:05:53 419

原创 数组去重方法

当使用for循环实现数组去重时,可以通过遍历数组元素并在新数组中检查是否存在相同的元素来实现去重。下面是一个使用for循环实现数组去重的示例。中,这样就实现了数组去重。这是一种简单但有效的使用for循环实现数组去重的方法。使用filter方法:利用filter方法和indexOf来过滤出唯一的元素。使用reduce方法:利用reduce方法和includes来累积唯一的元素。使用Set对象:利用Set对象对数组进行去,然后再转换回数组。在下列示例中,我们遍历原始数组。方法来检查元素是否已经存在于。

2024-06-02 19:57:17 184

原创 书写一个button禁用组件

点击一个button按钮,开始禁用,多少秒后解除禁用。

2024-05-30 09:57:47 79

原创 给定一个数组过滤掉数组中的非数字,并且从小到大排序

在示例中,原数组 [ '7' , '1' , '4' , 'a' , '5' , 'x' ]经过过滤和排序后,得到。,将过滤后的数组中的每个元素转换为数字类型。这样,排序后的数组中的元素将是数字类型。请注意,过滤后的数组中的元素仍然是字符串类型,但它们可以按照数值进行排序。函数判断每个元素是否为数字,若不是数字则被过滤掉。方法对过滤后的数组进行从小到大的排序。如果你希望过滤后的数组中的元素是数字类型,可以在。,它将元素转换为数字后进行比较。方法筛选出数组中的非数字元素。方法的回调函数中,使用。

2024-05-29 23:04:45 153

原创 001-下边代码输出什么?

然后,对数组中的每个子数组执行累操作,并将结果追加到累加器中。代码的输出结果是:[1, 2, 0, 1, 2, 3]。方法对给定的二维数组进行遍历和累加。进行拼接操作,得到新的累加器值。在第二次迭代中,新的累加器。进行拼接操作,得到最终结果。在第一次迭代中,累加器。因此,最终输出结果是。

2024-04-11 16:45:00 100

原创 将一个数组元素拆成数组套数组 封装一个数组套数组的方法

将一个数组元素拆成数组套数组 封装一个数组套数组的方法

2022-08-28 15:08:10 359 1

原创 react使用npx工程化创建项目时 报network ‘proxy‘ config is set properly. See: ‘npm help config‘

react使用npx工程化创建项目时 报network 'proxy' config is set properly. See: 'npm help config'

2022-08-28 14:43:05 593

原创 js实现数组渲染时,在每个值中间加符号,最后一个值不加

js实现数组渲染时,在每个值中间加符号,最后一个值不加

2022-06-10 15:16:53 887

原创 生成随机数 随机数不同才重新渲染页面 生成相同随机数时不重复渲染页面

import React from "react";class RandomNumber extends React.Component { constructor() { super() this.state = { number: 0 } } handleChange = () => { this.setState(() => { return {.

2021-12-12 15:20:34 511

原创 使用props-render模式实现鼠标移动 坐标监听

import React from "react";class Mouse extends React.Component { // 初始状态 state = { x: '', y: '' } // 鼠标移动事件 事件处理 onHandleChange = (e) => { this.setState({ x: e.clientX, y: e....

2021-12-09 22:49:07 234

原创 react 书写一个 发表评论小demo

import React, { Component } from 'react'class Index extends Component { constructor() { super() this.state = { comments: [ { id: '1', name: 'jack', content: '沙发' }, { id: '2', name: 'rose', content: '凳子' }, ...

2021-12-05 18:50:57 229

原创 JS实现身份证号显示前3位和后4位,中间用***替代

// 想要保留多少位,直接给对应的变量的赋值即可 // 此处是保留前三位和后四位const hiddenCardId = (str,frontLen = 3,endLen = 4) => { //str:要进行隐藏的变量 frontLen: 前面需要保留几位 endLen: 后面需要保留几位 var len = str.length-frontLen-endLen; var start = ''; for (var i=0;i<len..

2021-10-31 13:29:44 3578

原创 状态组件和无状态组件

类是状态组件(statefull component)函数是无状态组件(stateless component)判断组件时状态组件还是无状态组件判断一个组件的类型,就是看:该组件是有状态,还是无状态。同样,如果使用一个组件,需要维护一个组件内部的状态,那么就选择有状态的组件类型;相反,如果不需要维护状态,就是无状态类型组件什么叫状态(state)状态是一个组件中的数据集合,当有状态的组件(stateful component)被加载到内存中时,这些数据也同时被保存在内存中。当渲染带状态.

2021-10-24 14:10:03 372

翻译 Sass的了解和使用

什么是Sass?Sass是一个Css预处理器Sass是Css扩展语言,可以帮助我们减少CSS重复的代码,节省开发时间Sass完全兼容所有版本的CSSSass扩展了CSS3,增加了规则、变量、混入、选择器、继承、内置函数等特性Sass生成良好格式化的css代码,易于组织和维护Sass文件后缀为.scss为什么使用Sass? CSS本身语法不够强大,导致重复编写一些代码,...

2021-10-20 10:27:07 157

原创 用npx create-react-app 文件名 创建项目的时候报Maximum call stack size exceeded错误

Maximum call stack size exceeded解决方法1.删除node_module文件夹和package-lock.json文件,再重新npm install到了这一步,80%的用户都能解决这个问题了,如果还是没有,执行下一步。。。2.清空缓存npm cache clean --force 重新执行操作...

2021-10-19 14:56:42 207

原创 组件中DOM样式

行内样式想给虚拟DOM添加行内样式,需要使用表达式传入样式对象的方式来实现// 注意这里的两个括号,第一个表示我们在要JSX里插入JS了,第二个是对象的括号<p style={{color:'red', fontSize:'14px'}}>Hello world</p>行内样式需要写入一个样式对象,而这个样式对象的位置可以放在很多地方,例如render函数里、组件原型上、外链js文件中使用classReact推荐我们使用行内样式,因为React觉得每一个..

2021-10-18 18:46:02 89

原创 有哪些继承方式、以及ES5和ES6继承的区别

继承的几种方式:原型链继承// 原型链继承 通过prototypefunction superType(){ this.color = ["red","green","blue"]}function subType(){}// 继承superTypesubType.prototype = new superType()let instance = new subType()instance.color.push("yellow")console.log(instance.

2021-10-11 12:32:24 107

原创 HTTP状态码

200:请求成功204:状态码没有响应体301:永久重定向,表示请求的资源分配了新url,以后应使用新url302:临时重定向,重定向的url还有可能会改变303:表示请求的资源路径发生改变,使用GET方法请求新url。它与302的功能一样,明确指出使用GET方法请求新url304:协商缓存404:请求失败...

2021-10-09 19:20:04 37

原创 移动端适配怎么做?

方法一: @media媒体查询,通过查询设备的宽度来执行不同的css代码,最终达到界面的配置方法二: Flex弹性布局方法三: rem+viewport缩放,屏幕宽度设定rem值,需要适配的元素都使用rem单位,不需要适配的元素使用px单位...

2021-10-09 15:38:34 103

原创 setState是同步还是异步

setState在合成事件和钩子函数中是异步的,在原生事件和setTime中都是同步的setState的异步并不是说内部由异步代码实现的,其实本身执行的过程和代码都是同步的,只是合成事件和钩子函数调用的顺序在更新之前,导致在合成事件和钩子函数中没法立马拿到更新后的值,形成了所谓的“异步”,当然也可以通过第二个参数setState(partialState,callback)中的callback拿到更新后的结果。...

2021-10-03 21:47:23 4049

原创 js实现二分查找(二分搜索)

首先了解什么是数据结构和算法数据结构 = 数据结构 + 算法数据结构:用来存储数据的数组算法:暴力搜索,二分搜索二分搜索:是一个搜索某个值的索引的算法条件:在一个有序的数组中查找一个特定的元素 X算法思路: 1)从数组的中间元素开始,如果中间元素正好是X,而查找成功 2)如果不是中间元素,则利用中间元素,将数组分为前后两个子数组 如果X小于中间位置的元素,则进一...

2021-09-29 12:28:38 2916 3

原创 数组扁平化

将多维数组装换为一维数组let arr = [[0,1],[2,3],[4,[5,6]]] const newArr = function(arr){ return arr.reduce((prev,cur) => { // 返回是数组则进行数组拼接,不是数组直接写入当前值return prev.concat(Array.isArray(cur) ...

2021-09-28 17:45:07 55

原创 简述JavaScript中map和foreach的区别

相同点:循环时,第一个参数都为回调函数,这个回调函数是必传的,都有三个参数arr.forEach(function(currentValue,index,arr),thisValue)arr.map(function(currentValue,index,arr),thisValue)参数1:currentValue: 必填,当前元素参数2:index: 选填,当前元素的索引值参数3:arr: 选填,当前元素所属的数组对象forEach和map: 都无法遍历对象,仅适用于数组的遍

2021-09-20 13:15:29 604

原创 git commit -m ‘‘上传提交时报error Command “husky-run“ not found.错误

error Command "husky-run" not found.解决方法:step1: rm -rf .git/hooksstep2: 重新执行提交命令(git commit -m '提交内容')

2021-09-07 11:21:45 2571

原创 var、let和const的区别

注:下边的{ }代表的是一个作用域let 和 const是ES6语法新增,专门用于声明变量var:1.var声明的变量可以提前调用 但结果是 undefined2.var声明的变量 变量名称可以重复(重复的话是重新赋值,后边的变量赋值会覆盖前一个变量的赋值)3.var 定义在{ }中的变量 可以在{ }外调用4.循环中 声明的变量 只会生成一个 循环变量 每次循环都是 重复赋值 循环结束只有一个变量 存储 最终数值let:1.let声明的变量不能被 预...

2021-09-05 23:04:14 64

原创 git常用指令大全

git init : 初始化git仓库git fetch : 将远程主机的最新内容拉到本地 git fetch origin 分支名 : 拉取某一个分支到本地(下边这种情况是因为文件是隐藏的 直接切换你要切换的分支即可)git pull 将远程主机的最新内容拉下来后直接合并 git status : 用于查看在你上次提交之后是否有对文件进行再次修改(红色的代表有修改没有上传)git add . : 将所有的代码提交到缓存区git checkout . : 放弃所有的文件修改.

2021-09-03 16:54:03 373

空空如也

空空如也

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

TA关注的人

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