- 博客(69)
- 收藏
- 关注
原创 node的事件循环
事件循环会先检查有无nextTick以及Promise,如果没有首先进入timers队列,然后再进入poll队列,在这个队列的时候,会有特殊操作,会去检查timers和check队列有没有需要执行的,如果没有,就会在poll队列等待,因为啥都没有,不可能事件循环一直空转吧,而且poll队列是I/O操作队列,node更想优先处理,当其他队列有任务的时候,事件循环会再次启动。将代码优化,加入一个300ms的阻塞不同版本的node会有不同的结果,然后当场破防,白写这么多。最新的事件循环等我找到了再写。
2024-04-21 22:48:26 192
原创 webpack-plugin详解
plugin其实就是一个类,类里面有一个apply方法,这个方法接收一个参数compiler,这个参数保存着webpack完整的配置,可以对其进行操作,来实现自定义的plugin了。webpack还提供了一系列的钩子函数,类似于vue的生命周期,可以在不同的钩子函数中进行操作。上面的entryOption就是一个钩子函数,可以通过同步tap来操作。操作分为三种,同步、异步、异步promis。
2024-04-09 14:40:24 142
原创 正则表达式详解
字符也有unicode文字系统属性 Script=文字系统,使用 \p{sc=Han} 获取中文字符 han为中文系统,其他语言请查看。这样就可以匹配所有任何的字符了,还有注意区分这里的“^”,在原子组里面代表的除了后面的元素,在表达式最前面就代表以某个字符开始。修正符 m: 多行匹配,本意是如果在字符串中存在换行等字符,同样可进行匹配,返回完整匹配数组。修正符 s: 单行匹配,本意是将多行字符串视为一行,换行符视为普通字符串。转义就是一个字符可能会有两种意义,有一个默认意义和特殊意义,需要使用。
2024-04-08 22:15:52 522
原创 JavaScript小数精度问题
js存储数值采用的是IEEE754标准中得64位双精度法,都知道是用二进制来进行存储,但在IEEE754标准中,将这64位分成了三个部分,分别是符号位,指数位,有效位,其中符号位最简单,0表示正数,1表示负数,假如有一个二进制11000,不可能直接这样存储,需要表示位1.1 ✖ 2^4,这个4就会存储在指数位,1.1就会存储在有效位。现在来看0.1在计算机中如何存储。
2024-04-08 17:55:26 187 1
原创 webpack练习之手写loader
return str;webpack里面的loader配置},在APP.vue文件里面使用这个时候就会在页面看到效果了。
2024-03-27 00:10:42 542
原创 webpack-loader详解
pre > normal > inline > post,相同类型的loader执行顺序为:从右到左,从下到上。内联loader不能用上面的方式定义。2.normal:普通loader。3.inline:内联loader。4.post:后置loader。1.pre:前置loader。
2024-03-25 00:11:51 477
原创 打开文件夹并获取文件
直接贴代码,主要是调用showDirectoryPicker这个方法,返回文件夹,通过entries方法可以获取这个文件夹里面的内容,文件内容也可以看,只是没有结构和高亮,可以通过lHighlight.js这个插件来实现。
2024-03-15 23:59:22 348
原创 DNS域名解析过程
如果想要访问百度,需要输入https://www.baidu.com/,但是计算机只能识别并且用IP地址定位,但是呢,IP又是一串数字,和百度没有任何联想,根本记不住,所以必须得使用域名,也就是开头那一串,这样一下子就能记住百度的访问地址1.其中www也叫主机名,还有mail之类的主机名,可以参考一些qq邮箱和qq空间2.也叫权威域名服务器,统一管理以上的主机名3..com也叫顶级域名服务器,所有以.com结尾的域名都属于它管,也有其他的,比如.cn .net4.
2024-03-10 00:34:27 367
原创 vite打包奇葩问题
在项目中使用了环境变量来实现开发环境和生产环境加载不同的配置,上面这串代码是我在不同环境变量配置文件中设置的不同环境名称,开发环境这串代码没有任何问题,但是我执行build的时候,这行代码报错了。这样就不报错了,更加懵逼了,这就一字符串,竟然也会影响打包!直接懵逼,网上到处找答案也没解决,直到我把代码改成这样。
2024-03-06 11:44:37 357
原创 关于数组sort的陷阱
一直以为sort不传递回调函数默认是升序排列,直到做一道算法题,代码逻辑全都没问题就是不通过。竟然把10排在3前面,竟然是判断首位大小,所以最好还是直接写升序逻辑。
2024-03-01 14:27:49 342 1
原创 javascript给对象添加迭代器
of可以遍历数组,为啥不能遍历对象,就是for…of会调用迭代器,而数组是内置了迭代器了,而对象没有内置,所以直接使用for…of遍历对象会报错,因此只用在对象的原型上面自定义一个迭代器就好了。这里的yield是每次迭代返回的值,你可以设置为1,这样for…of对象的时候,就全是1了。迭代器是啥就自行百度了。
2024-02-26 22:53:44 445
原创 手写commonJS里面的require函数
测试方式:新建一个b.js和a.js文件,在b.js中通过require来引入手写的myRequire函数,然后再通过myRequire来引入a.js。通过下面代码可以知道this === exports === module.exports,因为在执行fun.call的时候,传入的都是一个东西,4.第四行也重新赋值了,所以也不在指向this这个对象,所以module.exports = {d:4}因为最终返回的是module.exports,所以结果是{d:4,g:7}
2024-02-24 23:22:49 365
原创 css3实现炫彩字体
以前以为不设置边框颜色,默认是黑色,结果发现是默认和字体颜色一样。,文字颜色填充,效果和color差不多;这个字体颜色是动态变化的,直接上代码。:背景裁剪,有哪些值自行百度;
2024-02-16 22:13:29 967
原创 js importmap
这样就能正常引入包了,这里的vue可以随便取名,abc也行,只要下面引入的名字和这里对应起来就行了。在html文件中使用npm 下载的包,比如vue,在使用import引入的时候会报错。环境的,我们就想这样使用咋办?这时候就需要使用importmap了。来表示路径的,在平时项目开发中都是使用的。来进行开发,他们都是基于。
2024-02-14 22:06:02 528
原创 vue响应式解析
vue响应式的条件是被监控的函数运行期间用到了响应式数据,在响应式数据发生改变的时候,才会重新执行被监控的函数,从而实现响应式。
2024-02-12 21:07:31 622
原创 vue pc端网页实现自适应
然后就可以直接在css里面使用px了,这个依赖会自动把px转换成rem,包括ui框架里面的,比如elmentui里面的,这样全局的css样式都是rem了,但是有一个缺陷就是行内元素里面的px不能转换,比如。在vite.config.ts文件中引入,我这项目用的是vue3 + vite + ts,你用的是webpack,那就在vue.config.js里面。,但是不建议写在style里面,如果ui框架里面的样式用的是style,那就只能用穿透去修改了。pc端做自适应可以用rem来实现,啥是rem,自己百度。
2024-01-29 10:59:08 1144
原创 【网络安全】Chrome 94 CORS private adress 问题
打开浏览器,进入chrome://flags/页面搜索Block insecure private network requests设置为Disabled,重启就好了。电脑访问正式环境的项目,由于正式环境是外网,然后项目中又需要访问内网的某个项目时,就会触发浏览器的安全策略,禁止外网访问内网。给内网地址映射一个 https 的地址。
2024-01-19 09:22:41 365 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人