- 博客(36)
- 收藏
- 关注
原创 手写实现new
function _new(fn, ...args) { /* 1. 创建一个空对象 2. 对象的原型指向原型对象,就是fn构造函数的prototype 3. 执行构造函数里的代码 4. 返回这个对象 */ let obj = Object.create({}) obj.__proto__ = fn.prototype
2022-02-07 18:49:10 214
原创 防抖和节流
防抖和节流是面试经常会被问到的问题,但是看的时候经常会搞混,对两种现象不明确,今天在实现的时候,觉得自己理解得更加清晰了。防抖顾名思义是防止抖动,如果操作过于频繁,会出现抖动,防抖要等动作结束之后再执行,比如搜索框keyup事件触发查询,就是要等连续输入后触发,不是每一次输入都触发。function debounce(fn, timeout) { let timer; return function() { let context = this
2021-12-01 14:52:37 204
原创 typora + picgo + gitee 导入makdown文档问题记录
日常记录的工具使用typora,没有记录到博客上,有没有方法能自动把typora的笔记同步到博客上呢,在网上搜了一下,md文件可以直接导入,图片需要上传到图床,csdn会把图片从图床上下载下来,显示在文章里也参照网上的方法 注册了gitee,新建了仓库,安装了picgo,picgo安装了gitee插件typora 的偏好设置里可以设置上传服务,选择picgo.app,点击验证图片上传选项,会有图片通过picgo的配置上传到gitee仓库里我在picgo的配置里选择了上传前重命名和上传提示,验证的时候
2021-11-22 14:15:16 103
原创 Js字符串方法使用—replace
replace有这样一个问题,使用正则的方式把字符串 19970206 转换为 1997/02/06 的格式,字符串+正则,首先想到的是replace,但是之前用过的replace都是直接把第一个参数的内容用第二个替换掉,看了一下w3school文档上关于第二个参数的说明,有点抽象,没看懂,但是应该就是这个了????$1、$2、…、$99的含义与 regexp 中的第 1 到第 99 个子表达式相匹配的文本var a = '19970206';var b = a.replace(/(\d{4}
2021-06-19 23:52:17 242
原创 数组解构报错
今天遇到这个错误提示 Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a Symbol.iterator method.大概意思是 解构非可迭代实例的尝试无效。为了具有可迭代性,非数组对象必须有Symbol.iterator方法。是因为解构的错误,看了代码中结构的部分,结合业务数据,发现这句过滤 const [dscp] = arr.fil
2021-05-12 23:42:51 4682 1
原创 自己从零开始搭建webpack项目
从0开始搭建webpack项目初始化项目使用 npm init 初始化项目,按照提示输入信息,生成package.json,或者使用 npm init -y 生成文件,效果和每项都回车生成的内容一样安装webpacknpm install webpack --save-dev安装完之后会生成node_modules,git显示有2k+的文件修改,所以要想将/node_modules/文件夹过滤掉,新建.gitignore,把文件夹配置到这里...
2021-05-11 00:47:29 183
原创 2021-03-21记录待办
前几天在使用 cli 用 webpack 打包的时候遇到一个问题,好久才定位到原因???? 我们的语言定义文件打包时候被放到copyPlugin里,直接拷贝到目标文件夹下,不作为入口文件编译,在修改文件的时候,监听文件,能获取到当前修改的文件路径,因为是增量编译,按照当时的实现逻辑,webpack 的入口文件就是当前修改的文件,所以就算该文件是语言文件,还是会直接被添加到入口文件的对象里,还是会经过编译,造成现象是,虽然有copyPlugin,但输出的文件还是被编译之后的,不是文件拷贝,语言定义不是.
2021-03-21 23:20:38 88
原创 webpack动态引入踩坑记录
一般使用的在文件开头使用的import .. from .. 属于标准的静态的引用方式,在文件被加载的时候就被编译,如果需要根据条件判断或者按需引入,就可以使用动态引入的方式import(),import()语句将返回promise,使用then或者async/await 来获取回调今天在执行的时候根据当前的菜单映射到需要加载的文件路径import(fileMap(currentId)).then(res => {...})结果报了错误,couldn't find module...fi
2021-03-18 00:20:54 221
原创 工具汇总 - 移动端
VConsole以前没有在手机上调过移动端,第一次用这个工具,操作起来就像微信小程序的调试,在加入VConsole的页面会有悬浮球,打开能够查看控制台打印信息,用到的功能还不多,已经满足目前需要。<script src="http://wechatfe.github.io/vconsole/lib/vconsole.min.js?v=3.2.0"></script><script> new VConsole();</script>重写了con
2021-01-28 23:33:14 116
原创 记录用过的 react 包
react-document-title作用:通过 title 属性传值更改页面的title,相当于document.title = ‘XX’(为什么不直接用原生的方式呢?)看到源码里this.props.children,在业务代码里打印了一下是 undefined,原因是我打印的这个组件,在父组件调用的时候标签里并没有传内容,这个children是父组件标签里的内容...
2021-01-24 18:25:54 88
原创 react、redux、react-redux的关系梳理
最近做项目虽然知道用到这三个,但是不清楚具体是干什么的,做了什么,有什么联系,在这里整理一下。react 和 redux 是不同问题的解决方案,react 侧重于页面,redux 侧重于数据的流动和处理,redux 是一个库,也可以与其他框架一起使用,因为 redux 的数据管理方式很适用于 react 的数据驱动视图的理念,所以一起用非常便利。//TODO:整理 redux 数据流一般什么项目需要使用 redux 呢?项目庞大,使用公共组件和业务组件,通信频繁不同身份的用户角色,读写权限不一样
2021-01-02 20:28:02 310 2
原创 NPM发包版本号规范
版本格式一般为:x.y.z-statex – 主版本号,y – 次版本号,z – 修订号state – 版本状态,可选字段,可选值包括以下几种alpha,内部测试版本,bug较多beta,公测版本,给外部进行测试的版本,有缺陷rc,release candidate,前面三种测试版本的进一步版本,实现了全部功能,解决了大部分bug,接近发布,正式版本的候选版本版本号递增规则主版本号:做了不兼容旧版本的API修改,大版本修改,主版本号递增时,次版本号和修订号必须归零次版本号:向下兼容的
2020-12-28 21:59:58 2175
原创 generator函数的使用场景
笔记: generator 便于流程执行,代码可读性高 yield定义不同的状态,没有执行到return的时候返回的都是{value:‘...’, done:false},执行完return后 done为true,没有return语句最后返回{value: undefined, done: true},每次return只能执行一次。 yield表达式返回undefined,next()传的参数相当于是上一个yield的返回值 (yield表达式返回值为undefined,{va...
2020-12-13 14:35:02 647
原创 重新开始啦
太久没在csdn写博客,工作以后虽然接触的更多但是积累的时候比较少,现在看自己17、18年的博客都有点忘记了,但是那时候努力学习、耐心记录,觉得自己还挺棒的,以后也要多多记录~
2020-12-08 00:08:23 77 1
原创 作用域和闭包
https://www.nowcoder.com/test/question/done?tid=15047766&amp;qid=56240#summary本来以为闭包的知识已经掌握了,但通过最近刷题发现其实只懂个一二,再整理整理吧。 以前了解到的闭包:外部函数内部声明了内部函数,在内部函数中引入了外部函数的局部变量,当外部函数执行完毕后,这个局部变量不会被释放。最典型的应用是利用for...
2018-08-19 01:03:32 204
原创 vue-cli项目笔记
1.怎么动态改变样式? 一开始呢,我是这样写的,li不是v-for循环出来的,当要判断当前点击是哪一个li时,我通过 for (let i = 0; i &lt; aLi.length; i++) { console.log(aLi[i]); aLi[i].setAttribute("index", i); aLi[i].onclick...
2018-08-19 01:02:38 181
原创 初学python
开始学习python,程序员就是要不断学习的嘛,随手记录入门遇到的问题,虽然问题很基础,但是难免还会有人再遇到,等以后再回看写的博客,才会有对比自己有了多少进步2333 第一段代码就报错了,原因是我用的是python 3.X,但是这是2.X的版本,3.X里print要加括号。 改了这个问题,(嘻嘻,偷了个懒,没有缩进) 不知道不缩进也不行,缩进之后就正常输出了。生成器与迭代器 ...
2018-08-19 01:02:00 165
原创 记录vuepress
官网链接https://www.vuepress.cn/,这里我只是把我的过程记录下来 - 搭建 推荐使用的是yarn,我本来不用yarn,所以从头开始 官网强调node版本要&gt;=8,我使用的是6,于是又下了nvm,管理切换node版本curl -curl -o- httpo- https://raw.githubusercontent.s://raw. co...
2018-08-19 00:53:14 1962
原创 近期整理汇总
做网站的时候想用video标签固定定位在浏览器上做背景,但是宽度不够,两边总是留出空白,设置了width:100%;height:100%;也没效果,后来在video上使用了object-fit: fill;留白没有了。【小程序】和一位超级帅的同事一起发现的,哈哈哈,偷偷夸夸他,wx.showToast在回调里不好用,可以用计时器模拟(emmm这个实现原理还要再看看)【小程序】swiper-...
2018-07-31 00:15:01 345
原创 最近的面试题(一)
我把我遇到的面试题整理出来,有答案不合适的地方还请大家多多指教行级元素和块级元素的区别 1.行级元素不能设置宽高,不能单成一行,块级元素有宽高,单成一行。(我只答了这一条。。sad) 2.块级元素可以包含行级元素,行级元素不可以包含块级元素 3.还有margin和padding的区别,行级元素margin只能设置左右,padding可以设置右下左。元素的盒模型 元素可以看成是一个盒...
2018-04-22 00:48:49 338
原创 vuecli项目时的笔记(一)
1.箭头函数的this指向 指向定义时的对象,而不是调用时的对象对于这种情况能很容易的区分出定义时的对象var aa = (x,y)=>{ return x+y; //this->window}那这样呢?var aa = { b:123, c:()=>{return x+y;console.log(this);} /...
2018-03-09 07:43:00 294
原创 obj的静态方法和实例方法
//静态方法function Person(){}Person.print=function(){ console.log('print');}Person.print();//实例方法function Person(){}Person.prototype.print=function(){ console.log('print');}var p = new...
2018-03-05 08:38:45 269
原创 javascript的执行机制
setTimeout(function(){console.log(1);}, 0);console.log(2);这段代码的运行结果是2,1,而不是1,2,这是因为js的执行机制。 首先,我们知道js是单线程的,即同时只能处理一件事,但是浏览器是多线程的,那js为什么不能是多线程呢,主要因为js处理用户的简单交互,如果同时处理多个事件就很容易造成混乱。js处理时间可以分成主线程和任务
2017-12-27 21:41:55 361
原创 使用vue-aplayer插件时出现的问题
刚刚接触vue-aplayer,从github上找到了用法,首先需要npm install vue-aplayer –save ,之后在组件中引入import VueAplayer from ‘vue-aplayer’,别忘了注册components: { 'a-player': VueAplayer } 这里还有一个问题,用v-if,而不是v-show,因为...
2017-12-02 21:18:48 7089 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人