- 博客(43)
- 收藏
- 关注
原创 js04自定义方法检测js中的假值
基本数据类型的真假很好判断,通过!或者Boolean()都可以判断,但是引用类型,比如[],{}这两个用前面的方法判断的话,结果会为true,这不是我想要的,所以写了一个方法判断这些数据的真假。首先我觉得在我的工作中可以被定为假值的数据有以下这几个。对象是通过对象属性形成的数组的长度判断的。数组是通过数组的长度来进行判断的。
2022-11-02 17:14:49 338
原创 js03模拟lodash中的memoize函数
Lodash中memoize函数可以对一个函数进行缓存,返回一个被缓存过的函数,然后这个函数就只能被执行一次。模拟momeize函数。
2022-11-02 15:26:19 325
原创 js02之如何把一个函数变为柯里化函数和通过高阶函数解决add(1)(2,3)(4)和add(1)(2)(3,4)()问题
在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。柯里化_百度百科。
2022-11-02 13:52:09 181
原创 js01之高阶函数与部分数组方法的实现
一个函数中有的参数是函数,或者返回值是函数,这样的函数就是高阶函数。下面这个例子中的fn就是高阶函数console.log('我是fn的参数');}}我们平常使用的高阶函数有哪些呢?其实有很多高阶函数,比如数组中的方法forEach,map,every,some等等都是高阶函数。我们自己来写一下这几个函数的实现因为每一个数组都可以调用这些方法,所以这些方法写在原型上是最好的。
2022-10-30 21:16:02 114
原创 antd form如何通过一个字段控制另一个字段是否为必填
最近遇到一个小的需求,当用户讲一个Switch的按钮选择为yes的时候,对应的一个InputNumber组件就要为必填,同时还要检验InputNumber是否填写了数据,如果Switch为No,则对应的InputNumber组件要禁用。
2022-09-27 15:12:14 2641
原创 02Node自定义脚手架前置内容之创建全局的自定义命令
!/usr/bin/env就是让系统使用node来执行你的脚本文件。2.1安装commander库2.2使用commander提供的方法//commander插件,用于解析命令行参数//当在终端使用 ymz -s 或者 ymz --save时会显示save something//这个方法就是添加帮助项,表示传递的参数,使用时应该这样使用 ymz -s xxxx 或者 ymz --save xxxx。
2022-08-22 18:06:38 890
原创 javascrip数据结构与算法day01正整数10进制转为二进制
给定一个函数fn,传入一个参数,参数是正整数且是十进制的数,要求将这个十进制的数转为二进制的数。
2022-08-22 13:54:16 290
原创 JavaScript数据结构与算法day01斐波那契数列
今天学习了新的方法解决菲波那切数列,一般我们会通过递归的方式解决这个问题,但是我们知道递归应该谨慎使用,因为它非常容易造成Stack Overflow,并且如果通过当数据量变得大了之后,递归的速度也显得非常慢。所以今天我写了两种解决办法,一种是递归,另一种是O(n)的算法。递归使用1072ms,for循环使用了0.0058ms。开始,后面的每一项数字都是前面两项数字的和。表示)形成的序列称为。
2022-08-22 11:38:09 398
原创 react18组件中props没有children属性可用改如何解决
今天自己新搭建了一个react demo项目,写代码的过程中需要用到props.children属性,结果提示我说props上没有children这个属性,我点击去一看,新的react把props默认设置为一个空对象了。定义一个Iprops的interface,指定children属性,因为children是可有可无的,所以设置为可选属性,类型为React.ReactNode,这样子类型检测就可以通过了。其实,我们可以用typescript提供的interface来限定props的属性。...
2022-08-17 17:53:41 3350
原创 如何理解useEffect的依赖项为引用?
2.当有依赖项时,如果点击一次按钮,fn就会被调用一次,useEffect会对比前后两次的count,因为count我们定义的是基本类型,所以就是判断值相不相等。2.代码从上到下执行,fn被重新定义了一遍,此时的fn不再是一开始的fn,所以第一次的fn和第二次的fn不是同一个fn,useEffect中的副作用函数被再次调用。使用useCallback这个hook,useCallback是当某个依赖改变时,返回一个函数,在依赖没有改变时,useCallback会缓存第一次返回的函数。...
2022-08-17 15:49:55 1105
原创 react中如何通过@font-face使用其它字体
工作的时候,用户可能不喜欢浏览器默认的字体,想要选用其它的字体,这时候我们如何去完成这个需求呢?1.css中的@font-face属性。然后给你需要的内容添加上样式。2.客户需要的字体文件。
2022-08-17 13:23:26 987
原创 后端传给前端图片的url,react使用JSZip库批量下载图片
最近项目中有个需求就是可以让用户选择图片下载为zip。在网上搜索了资料发现jszip这个库可以解决这个需求。首先我们需要先下载这个库
2022-08-10 13:28:10 1074
原创 ant design Form.Item如何在输入一个字段值时校验另一个字段是否符合规则
ant design Form.Item,form.list如何在输入一个字段值时校验另一个字段是否符合规则
2022-08-04 11:10:41 2943
原创 And Design InputNumber组件中如果输入框的值为null,如何默认为指定值
这个是官网提供的代码,当我们删除InputNumber框内的值,然后InputNumber中的光标失焦后,输入框内的值没有变为0,这不是我们期待的结果。AndDesignInputNumber组件中如果输入框的值为null,如何默认为指定值。下面我们只需要添加一句代码就可以完成这个功能,代码如下。...
2022-07-28 09:18:16 1136
原创 玩转JavaScript数组方法之forEach
今天我们来看看一个JavaScript中关于数组遍历方法之一的forEach方法。一在网上查forEach有啥特点,回答的内容大多的如下诚然这些是对的,但是为什么呢?这就比较少讲了。今天我们参考了MDN中关于forEach的代码,来看看这是为什么。forEach中之所以有最前面说的那些限制是因为用户的回调函数是在一个while循环中执行的。请看下面的代码。ff就相当于forEach,fn就相当于forEach中的回调函数,一个循环产生了多个callback函数调用,如果用户在callback中使
2022-06-21 15:45:05 433
原创 ant design Select组件中option内容太长
如何解决当Select组件的大小是固定的,但是option中文本内容太长了,导致页面不美观的问题?ant design 官网给了我们一个dropdownStyle的属性使用:你可以在这个属性中写css样式来设置option的样式<Select options={...options} dropdownStyle={{textOverflow:'ellipsis',width:"100px"}}> </Select>//这里width的宽度设置跟Se..
2022-05-24 09:43:16 4591
原创 Node.js用fs模块完成复制文件(视频)的脚本
const path = require('path');const fs = require('fs');// console.log(process.argv);//process是一个全局对象//process.argv可以拿到我们执行node命令时传递的参数,argv是一个数组//复制文件的开始路径const fromPath = process.argv[2];//复制文件的目标路径const toPath = process.argv[3];const copyFile .
2022-05-06 22:53:14 630
原创 将Input组件的字母从小写变为大写后MaxLength属性失效的解决方案
最近遇到了一个很奇怪的问题,要求是将Input和TextArea组件中的输入的小写英文字母变成大写英文字母,因为我用的是公司对antd某些组件进行二次封装后的组件,所以我不太清楚他的内部逻辑是什么,但是测试在测功能时找到了这个bug如图我再添加rules属性,发现还是不能限制文本框中的字符个数,这是我切换成了中文输入法乱输入的结果。我觉得应该form给文本框赋值的时候出的问题,即便我用了原生的input框和js代码完成这个功能还是没有办法限制字符个数原生的代码和效果但是我在网..
2022-05-06 14:42:44 593
原创 Webpack打包css文件的背景图路径错误以及多生成了图片
module.exports = { entry:'.src/index.js', output:{ filename:'main.js', path:path.resolve(__dirname,'dist') }, module:{ rules:[ { test:/\.webp$/, use:[{ .
2022-05-01 14:49:19 1087 2
原创 Typescript之接口(Interface)
我们可以通过Interface关键字来定义限制数据的类型。1.给对象定义类型/** * 定义一种类型,名称叫做PersonInfo,里面有三个属性 * @name 人物的名字,类型为string * @age 人物的年龄,类型为number * @say 人物的方法,类型为函数类型,函数传递一个参数,参数类型为string,返回值类型为void */interface PersonInfo{ name:string, age:number say:(content:st..
2022-04-23 18:46:58 3932
原创 TypeScript数据类型之枚举(Enum)
enum Week{ MON, TUE, WED, THU, FRI, STA, SUN}枚举类型的数据的值默认是从0开始,依次增加1的,输出看看:我们也可以直接修改每个变量对应的数值enum Week{ MON, TUE, WED = 4, THU, FRI = 5, STA, SUN}再看看输出的值可以知道枚举中每个变量的值是根据前一个变量的数值+1得..
2022-04-18 17:11:25 1521
原创 useRef创建的对象存在react整个生命周期当中
import React,{useRef, useState} from 'react'/** * * @returns useRef创建的对象存在于整个生命周期中,每次返回的都是都一个对象 */export default function Test() { const [count,setCount] = useState(0); const uRef = useRef(0); const reactRef = React.createRef(0); if(!uRef.c.
2022-04-07 10:32:52 1032
原创 如何去除在使用moment.js产生的日期格式警告?
警告:Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http:
2022-03-31 10:25:07 3853 1
原创 数据结构(JAVA)之单向队列(数组实现)
队列是一种线性结构,除了第一个元素和最后一个元素的其它元素外都有唯一的前驱和唯一的后继。图解单向队列,完成一个队列需要4个属性值:maxSize,front,rear,array。maxSize表示队列中可以存储最多的元素的个数,假设maxSize=4,array是存储数据的数组,front表示队列的头部,rear表示队列最后一个元素的下一个位置,一开始队列中是没有值的,所以我们让rear=front=0,此时表示队列为空。当我们向队列中添加一个元素时:rear++,此时front = 0,
2022-03-09 14:02:30 575
原创 自定义DatePicker组件中星期显示的格式
在官网拿来的DatePicker的显示如下如何让这个组件从Mon开始显示//导入需要的模块import locale from 'antd/lib/date-picker/locale/en_US';//函数组件中的代码useEffect(()=>{moment.updateLocale('en', { week: { dow: 7 }, weekdaysMin: 'Mon_Tue_Wen_Thr_Fri_Sat_Sun'.split('_'
2022-03-02 16:52:03 780
原创 js对象如何通过变量读取属性
先看看js读取属性的常见的方法。1.通过.的方式读取let obj = { name:"javascript", price:20000}console.log(obj.name,obj.price)2.通过[变量名]的方式读取let obj = { name:"javascript", price:20000}console.log(obj['name'],obj['price'])如果有这样一段代码,输出结果会是什么呢?let a = 'namel
2022-02-07 11:32:05 4103
原创 JavaScript中表示假的值有哪些?
如何知道js中表示假的值有哪些,我们只需要通过一个常见的函数Booealn()就可以解决了。常见的假值有:1. 02. NAN3. ""或者是''4. null5. undefined[]和{}都是表示的真值结果如下
2022-01-29 12:01:17 812
原创 js中的两次取反操作的理解
在工作中你经常会看到别人的代码长成下面这样function fn() { return !!(xxx)//xxx表示一个数据而已,可以是任意类型数据,比如123,'aa'等等}这里的return !!(xxx)到底是什么意思呢?js中!表示取反的意思,!后会得到一个布尔值。比如:!1的结果就是false,!''就是true。console.log(!1)console.log(!!1)结果如下:我们为了得到一个布尔值会一个变量进行取反,但是取了反后得到的结果是与原来的
2022-01-29 11:39:03 4219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人