- 博客(52)
- 问答 (6)
- 收藏
- 关注
原创 工具类-树形数据遍历 treeDeep
handler:遍历树节点时的处理函数,函数的返回值将作为 treeDeep 函数生成的新树的节点。一个用于深度遍历树形节点的工具函数。传入树数据和对应的处理函数,生成新的树。将返回一个与传入的树数据结构一致的新树,节点为。给所有树节点增加一个字段。tree:树节点数据。
2024-11-13 10:35:54
240
原创 使用 mediaDevices.getUserMedia 在浏览器录制视频
使用 mediaDevices.getUserMedia 函数实现视频录制下载的使用笔记详细解析和示例
2023-10-14 04:00:31
1114
1
原创 JS 装饰器
JavaScript 装饰器是一种以符号开头的特殊语法,放在目标代码的前面用于包装或扩展代码功能。JavaScript 的装饰器语法目前仍处于提案阶段,现阶段使用的话需要通过 bable 等方式进行编译之后,才能在浏览器正常运行。装饰器分为两种:类装饰器,类成员装饰器,分别用于装饰我们的类以及类的成员。
2023-06-08 03:05:12
4646
原创 《重构》-- 1. 为什么开始读《重构》
重构是软件开发一个离不开的话题,我们经常会说重构,当软件设计遇到瓶颈无法支撑后续业务需要时,我们会重构。当代码阅读性差导致维护困难时,我们会重构。当我们接收别人代码是,经常会有一种代码混乱的感觉。我觉得很多时候觉得代码混乱是因为开发风格导致的,因为别人写的代码和你的代码风格不同,导致对你来说代码的可读性下降,从而导致接手代码后觉得代码需要重构。因为这种原因重构显然是不合理的,因为你重构完之后,别人接手时,也会产生同样的困扰,这就会产生很多不必要的重构工作。...
2022-06-22 22:25:43
202
原创 eslint 搭配 prettier 格式化 + husky 搭配 lint-staged 实现提交格式化和检测
eslint 搭配 prettier 格式化 + husky 搭配 lint-staged 实现提交格式化和检测注:本文基本是写给自己看的, 属于一个记录笔记, 避免每次配置都要查, 写得不清晰, 仅供参考, 如果看了有疑问也可以在评论指出首先默认项目已经有 eslint 检测,如果没有自行查找相关资料配置,这里重点值如何和 prettier 搭配工作安装 prettier 包需要依赖的包有: prettier , eslint-config-prettier, eslint-plugin-pret
2022-05-10 19:08:28
806
原创 自定义浏览器 console 输出 -- devtoolsFormatters
自定义浏览器 console 输出 – devtoolsFormatters当我们使用 console.log(…) 输出一些信息的时候, 浏览器会按照一定的格式输出这些信息到控制台。例如:我们可以看出浏览器对于不同的数据是做了不同的格式处理的,对于简单的字符串是直接输出 “xxx”,但是对于一些对象或数组类型,会先输出一个简单信息然后有一个展开的箭头可以查看详细的信息。例如上图的 friend 会在第一行先展示 Array(1) 代表这是数组并且长度为 1,点击 friend 左边的箭头又可以查
2022-05-02 21:09:16
2125
原创 shell 脚本-10函数
shell 脚本-函数函数定义带 function 标识的函数定义示例代码function fn1 () { echo "执行了 fn1 函数"}# 函数执行fn1执行结果执行了 fn1 函数不带 function 标识的函数定义示例代码fn2 () { echo "执行了 fn2 函数"}# 函数执行fn2执行结果执行了 fn2 函数函数的参数函数内使用 $n 或 ${n} 访问对应的参数, 数字代表参数的前后顺序, $1 代表第一个参数, $2
2022-04-27 18:00:37
502
1
原创 记录 element-ui v-loading 指令 instance.close() 报错问题
记录 element-ui v-loading 指令 instance.close() 报错问题背景解决 sentry issues 时看到一个这样的报错TypeError: Cannot read properties of undefined (reading ‘close’)报错的代码来自 element-plus 的 v-loading 指令, 在值变为 false 执行 close 函数时, 示例 instance 为空导致的问题原因页面是列表页, 每个列表项有一个展开加载数据的
2022-03-31 22:00:09
1767
原创 shell 脚本-09循环
shell 脚本-循环shell 中的循环包括 for while until 三种forfor 循环的语法格式为 for var in item1 item2 ... itemN do command1 command2 ... commandN donestr_arr=('a' 'b' 'c' 'd')for item in ${str_arr[*]}do echo $itemdone输出结果:abcd还可以使用 for 循环输出字符串str="I am eno
2022-03-13 15:55:46
256
原创 shell 脚本-08分支控制
shell 脚本-分支控制(if)if…elseif else 的语法格式为if conditionthen command_for_then_1 command_for_then_2 ... command_for_then_nelse command_for_then_1 command_for_then_2 ... command_for_then_nfi以 if 开头, 如果条件成立则执行 then, 条件不成立, 则执
2022-03-05 18:16:51
237
原创 shell 脚本-07test命令
shell 脚本-test 命令test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真num1=1num2=2if test $num1 -eq $num2then echo "test $num1 -eq $num2: $num1 等于 $num2"else e
2022-02-24 14:25:21
302
原创 shell 脚本-06输出命令(echo 和 printf)
shell 脚本-echo命令用于字符串的输出基本输出使用 echo string 命令输入 string 内容, 内容中的转义字符, 使用变量等规则参考字符串规则echo "Hello World"echo "\"Hello World\""echo 'Hello World'echo 'Hello World\"'运行结果:Hello World“Hello World”Hello WorldHello World"使用转义使用参数 -e 可以使 echo 命令启用转义
2022-02-23 15:57:17
8960
原创 shell脚本-05运算符(文件测试运算符)
shell 脚本-运算符(文件测试运算符)部分简单的文件检测操作符说明-r检测文件是否可读, 可读返回 true-w检测文件是否可写, 可写返回 true-x检测文件是否可执行, 可执行返回 true-s检测文件是否为空, 为空返回 false-d检测文件是否为目录, 为目录返回 true-e检测文件是否存在, 存在返回 truedemofile="/xxx/xxx/test.sh"if [ -r $file ]then
2022-02-22 17:34:06
668
原创 sell 脚本-05运算符
sell 脚本-运算符算术运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2完整的表达式要被 `` 包含,注意这个字符不是常用的单引号。*加法echo "加法: `expr 1 + 2 + 3`"# 或给变量赋值sum=`expr 1 + 2 + 3`echo "sum 值为: $sum"减法echo "减法: `expr 1 - 2 - 3
2022-02-19 21:16:31
716
原创 shell 脚本-04参数
shell 脚本-参数我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……使用和传参params.sh 脚本:echo "Shell 传递参数实例!";echo "params1: $1"echo "params2: $2"echo "params4: $4"echo "params3: $3"运行 params.sh 脚本:./params.sh 参数1 参数2 参数3
2022-02-18 21:42:44
361
原创 shell 脚本-03数组
shell 脚本-数组bash支持一维数组(不支持多维数组),并且没有限定数组的大小定义数组在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 … 值n)num_list=(1 2 3)读取数组使用 ${数组名[下标]} 获取对应位置的元素,也可以使用 ${数组名[@]} 或 ${数组名[*]} 获取数组所有元素使用num_list=(1 2 3)echo ${num_list[0]}echo ${num_list[@]}e
2022-02-16 17:56:56
156
原创 shell 脚本-02字符串
shell 脚本-字符串字符串可以用单引号,也可以用双引号,也可以不用引号my_name="eno"echo $my_namemy_name='zeng'echo $my_namemy_name=eno-zengecho $my_name单引号字符串str='this is a string'单引号字符串的限制:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
2022-02-16 17:20:58
496
原创 shell脚本语言-01变量
第一个 shell 脚本#!/bin/bashecho "Hello World !"#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。运行 shell 脚本可执行程序chmod +x ./test.sh #使脚本具有执行权限./test.sh #执行脚本一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh作为解释器参数
2022-02-15 14:16:32
119
原创 TypeScript 学习笔记
TypeScript 学习笔记基本数据类型布尔值(boolean)const is: boolean = true;数值(number)const num: number = 1;字符串(string)const str: string = 'Hello World';数组(Array)const numList: number[] = [0, 1, 2, 3, 4]; // 数值型数组const strList: string[] = ['Hello', 'World']; //
2021-08-06 11:52:58
183
原创 vue-property-decorator 定义组件 name 记录
vue-property-decorator 组件名称定义记录一下使用 vue-property-decorator 是因为 component name 被坑的经历使用普通写法写 vue 组件的时候, 通常使用 name 字段声明组件名称export default { name: 'MyComponet'}而使用 vue-property-decorator 时, 通常会直接定义 class nameimport { Vue, Component } from 'vue-proper
2021-01-13 17:53:47
1505
3
原创 前端使用facebook login SDK
前端使用facebook login SDK因为项目中需要使用facebook账号的第三方登录, 所以看了一下facebook的开发文档一开始以为可以直接引入那个facebook JS SDK的js文件就可以结果引入之后报错, 因为那份js文件使用了with语句, 而ES5的严格模式是不支持的然后看了一下可以使用js动态引入第一步, 引入登录SDK(function(d, s, i...
2020-09-07 17:39:54
6126
原创 create-react-app+typescript alias 无效问题记录
解决了使用 create-react-app 脚手架创建的 ts 项目无法使用 alias 问题记录
2020-09-07 15:42:16
2123
3
原创 Worker
workerJavaScript 是一门基于单线程异步操作的语言, 这是为了避免多线程带来的复杂性.对于一些好事的网络请求, 在 JS 中一般都使用异步执行来避免阻塞.但是, JS 中也是可以开启其他线程的, 也就是 worker. 可以说这就是 JS 中的多线程.worker 虽然可以开启主线程以外的线程执行一些其他操作, 但是它和主线程还是有区别的. 应该理解为辅助线程与主线程的区别...
2020-01-21 17:28:34
904
原创 NPM命令 npm access
NPM shell 命令npm accessnpm package 访问权限管理设置公开访问和私密访问权限> npm access publish [<package>]> npm access restricted [<package>]添加或删除团队的某个权限> npm access grant <read-only|read-w...
2019-11-02 11:36:55
622
原创 使用npm制作CMD命令(二)--命令参数的使用
CMD命令参数使用在使用npm制作CMD命令中已经介绍了基本的命令制作现在我们可以学习一下, 怎么使用参数, 例如我们使用vue命令的时候, 可以使用vue init, 也可以使用vue ui等去做不同的事情, 后面的init和ui就属于这个命令的参数的创建包首先还是新建一个包, 又关创建以及包的文件和格式, 请参考使用npm制作CMD命令目录package.jsonind...
2019-04-12 16:41:47
832
原创 使用npm制作CMD命令
使用npm制作一个CMD命令制作一个npm包, 让你可以在命令行执行你自己的命令, 然后自定义一些操作类似于各种vue-cli或其他各种脚手架, 通过执行vue命令, 去创建一个项目创建一个空包创建一个文件夹, 作为你的npm包的目录(以command-test为例)创建package.json文件打开command-test的命令行使用npm init创建package....
2019-04-03 11:43:32
1845
原创 verdaccio
Verdaccio–搭建NPM私有仓库全局安装Verdaccionpm i -g verdaccio启动 verdaccioverdaccio因为是全局安装,所以可以在任何目录下运行verdccio命令任意目录下进入命令行(CMD)运行命令verdaccio开启verdaccio服务, 启动后不要关闭修改配置文件config.yaml启动verdaccio时会有几行信息...
2019-03-11 10:11:36
1626
1
原创 JS实现复制功能
JS实现复制功能网页上经常会有复制文字到剪贴板的需求例如一些博客上的代码段上有复制按钮, 可以实现代码的复制对于我这种面向复制粘贴编程的人来说简直是福音基本思路借用document.execCommand函数, 这个函数可以实现很多功能, 我这里只介绍如何使用这个函数实现复制, 关于这个函数其他的东西, 可以参考MDN上的介绍使用这个函数的复制功能, 可以复制可编辑区域中光标选中...
2019-01-10 01:39:20
3956
原创 真机调试页面android+chrome
使用android手机调试网页前提准备安装了chrome的android手机电脑安装chrome手机与电脑连接手机上打开开发者模式, 不知道怎么打开的自行百度使用USB与电脑连接, 并打开USB适调电脑chrome开发工具页面地址栏输入 chrome://inspect进入页面后勾选 Discover USB devices手机上会出现提示是否允许适调, 点击确定...
2018-12-20 19:03:24
1155
原创 JS实现时间格式化
JS时间格式化函数根据传入的格式字符串, 把事件格式化成指定格式的时间字符串/** * 时间格式化函数, 按照指定格式化字符串格式化传入时间 * * @param {Date} time 需要格式化的时间 * @param {String} fmStr 定义时间的格式 * yyyy: 代表四位数年份 * yy: 代表两位数年份 * mm: 代表月份(小...
2018-12-12 11:56:34
9679
pm2 启动服务闪现CMD窗口
2019-03-22
关于facebook登录sdk获取用户信息的问题求助
2018-12-26
vue import jquery $.ajax 为 undefind
2018-10-12
unity C#脚本中获取使用该脚本的对象
2017-07-07
微信小程序如何设置appid
2017-05-11
JSP自定义带参数的标签是出错
2017-04-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人