- 博客(40)
- 收藏
- 关注
原创 css中的box-sizing,记录
border-box:最终大小为height,默认包含padding border等属性。content-box:最终大小为height+padding+border 等。
2024-11-18 09:24:38
312
原创 js中import引入一个export值可以被修改。vue,react
那在b.js中import使用obj时,obj不再是空对象,而是obj={a:'a:'a'}当在a.js中import引入一个空对象obj,并且新增一个属性obj.a='a'Object.freeze只能冻结第一层属性,如果需要冻结更深层属性则需要递归。如果导出的是一个对象,该对象引入后被更改了,则会影响其他文件引入此对象。判断对象是否被冻结Object.isFrozen()解决办法2:也可以使用和vue原理相同的代理去实现。Object.freeze() 冻结的特性。解决办法1:冻结对象。
2024-11-11 10:23:32
528
原创 分析和解决js运算精度问题,出现多位小数
某次突然发现在变整数的时候也会出现精度问题,比如上图中的数据。由于数据都是由后端返回,数据不固定,所以这个思路会有潜在问题。原因:js进行运算时会将数字先转为二进制再进行运算。加减乘除都会出现小数精度错误的问题 (见图)之前在做数字运算时都是将。数字转化为整数再进行运算。使用相关库进行运算,比如。
2024-10-08 18:01:31
806
原创 js字符串格式的数字比较大小
'1300'>'37' 为什么是false?在 JavaScript 中,当你比较两个字符串时,比较是基于字典顺序(也就是按字符的 Unicode 编码值进行比较)的,而不是数字的实际大小。因此,的结果是false,这是因为按字典顺序比较时,'1300'的首字符'1'在'3'之前,导致'1300'被认为是在'37'之后的字符串。
2024-09-02 09:36:13
509
1
原创 ECharts tooltip默认html样式,保留样式只对数据数值格式化
ECharts tooltip默认html样式,格式化数据保留默认样式
2024-08-23 15:15:29
1277
原创 vscode 写了未定义的方法不报错,配置全局ESLint
在正在维护的页面里复制了其他页面的一个方法,方法里面包含lodash的cloneDeep,cloneDeep在这个页面并没有引入,但是vscode却没有提示,很不友好,容易导致代码运行报错。文件->首选项->设置->插件->ESLint->ESLint:options->在settings.json中编辑。最近接触了一个旧的vue2的项目,里面没有ts和eslint配置。所以需要配置一下vscode进行代码检查,于是用到了ESLint。文件,文件内容和全局配置方法相同。在当前在项目的根目录下创建。
2024-08-21 09:41:11
932
原创 vue3中proxy为什么使用了Reflect.get()?ES6的Reflect是什么?
proxy为什么使用了Reflect.get()?Reflect调用的是js底层方法,底层方法会提供有更多功能。
2024-03-23 18:12:06
265
1
原创 JS改变this指向,手写简版call、apply、bind
apply:原理同call,参数改为数组的形式。原理就是利用:普通函数的this指向调用者。bind: 内部使用了call方法。
2024-01-09 15:21:42
404
原创 前端axios并发控制器,拦截器,事件并发控制器
将 ConcurrentInterceptors 类(第一个或者私有属性的都行)复制到 js文件,在需要的文件引入,并初始化实例对象。后来发现其他场景可能也有类似需要控制并发的需求,于是不与axios绑定将其抽离成公共的类,在需要的场景使用。结合1234:利用async、await和new Promise的resolve方法进行事件的执行控制。如果 最大并发数量>当前进行中的任务数量,则调用resolve方法,结束await等待。①最大并发数量、②当前进行中的任务数量、③存储等待中的任务。
2023-12-12 10:10:11
964
原创 js中WeakMap和Map的主要区别
关系,当键(对象)不再被引用时,垃圾回收器可以自动回收这部分内存,同时会被自动从WeakMap中移除。如果键一直被引用则不会被回收。因为WeakMap属性可能会被默认移除,所以WeakMap少了size、claer、迭代器等属性方法。即使键不再被引用,Map仍然会保存该键。键只能是引用类型的对象,并且是。键可以是任意类型的值,并且是。不容易理解的地方就是。
2023-12-12 10:09:47
570
原创 js中0==null为什么是不相等?两个==比较逻辑解析
两个'=='比较逻辑解析对象如何转原始类型?1.如果对象有[Symbol.toPrimitive]方法,调用该方法,如果得不到原始值,则抛出异常。3.undefined 和 null 只有与自身比较,或者互相比较时,才会返回true。3.调用对象的toString()方法,若该方法能得到原始值则使用,反之,抛出异常。5.一端是原始类型,一端是对象类型,把对象转换成原始类型后进入第4步。2.调用对象的valueOf()方法,若得不到原始值,进入3。
2023-07-17 21:57:11
732
1
原创 如何将常用js方法打包发布成npm包
引言:项目做多了以后总有一些常用的方法在各个项目中使用,代码总是复制来复制去,还有一些方法可能存在升级优化代码等情况,这个时候每个项目都复制一遍就很繁琐,所以如果将常用的方法打包成npm包各项目重新更新包即可。4.开发好代码以后命令行执行npm login登录刚才注册的账号,如果已经登陆需要切换账号执行那npm logout然后再进行要发包的账号登录。3.package.json平级创建一个index.js,里面编写需要打包的代码方法。3.1.如果使用了其他registry,需要切换回npm的地址。
2023-06-04 20:33:06
2428
1
原创 npm多个registry如果配置,如何管理?工具nrm登场
4.添加源 (自定义名称: javaScript 地址: https://************)通过工具nrm (NPM registry manager)来管理,指令简单,随时切换。6.可能遇到的问题,解决办法:执行命令:npm i -g nrm open@8.4.2。2.查看版本,测试是否下载成功。
2023-06-04 18:32:43
1830
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人