- 2024-08-14lua版promise实现 - 从异步回调多层嵌套开始
异步回调代码,很容易就写出下面这样的不断嵌套的代码。如果还夹杂着各种逻辑的话,可读性会很差,还容易出错。AsyncLoadRes("ResA",function(textA)print("ResAloadfinish")AsyncLoadRes("ResB",function(textB)print("ResBloadfinish")AsyncLoad
- 2024-07-31JavaScript 中的浅拷贝和深拷贝
目录浅拷贝定义特点示例使用场景实现方法深拷贝定义特点示例使用场景实现方法浅拷贝定义浅拷贝是指仅复制对象的第一层属性。如果对象的属性是基本类型(如字符串、数字、布尔值),则会复制这些值;如果属性是引用类型(如对象、数组),则只会复制指向这些对象的引用,而不
- 2024-07-16【利用Python进行数据分析8】Pandas入门(描述性统计的汇总与计算)
导包importyfinanceasyfimportpandasaspdimportnumpyasnp1.描述性统计的汇总与计算#1.描述性统计的汇总与计算#数值型数据df=pd.DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0.75,-1.3]],index=["a","b","c","d"],
- 2024-07-15connect 脚本
`procedure(ContInOrder()prog((OBJ1OBJ2obj1obj2VlineHlineHWVWHBPVBPxHBPyHBPxHEPyHEPxVBPyVBPxVEPyVEPSpace1Space2Space3Space4LeftDownLeftUpRightUpRightDownTechFileCGroupIdMyViaOptionsWindowNum1Num2BigNumSmallNumNEWVIAS)
- 2024-07-02通过反射对比两个对象是否相等
/***通过反射对比两个对象是否相等**@paramobj1obj1*@paramobj2obj2*@returnboolean*@throwsIllegalAccessExceptione*/publicstaticbooleanpropertiesAreEqual(Objectobj1,Objectobj2)throwsIllegalAccessException{if(obj1==obj2){
- 2024-06-09基本类型值,是按值复制的,而不是按引用复制的。(深浅拷贝)
letobj=[1,2,4]letobj2=Array.from(obj)obj2[0]=23console.log(obj)这是浅拷贝吗?在给出的例子中,Array.from(obj) 实际上执行的是对数组 obj 的浅拷贝。这是因为数组在JavaScript中是一种特殊的对象,其元素存储在索引属性中。Array.from() 方法创建了一个新的数组实例
- 2024-04-28QJsonArray对其对象排序
#include<QCoreApplication>#include<QJsonArray>#include<QJsonObject>#include<QDebug>#include<QList>//比较函数,用于指定排序规则boolcompareJsonObjects(constQJsonObject&obj1,constQJsonObject&obj2){returnobj1
- 2024-04-28js数组去重
functionisPrimitive(obj){returnobj===null||!['object','function'].includes(typeofobj)}functionobjEqual(obj1,obj2){//console.log(isPrimitive(obj1)||isPrimitive(obj2))if(isPrimitive(obj1)||isPrimitive(obj2)){
- 2024-03-23一文弄懂Javascript中的深拷贝和浅拷贝
目录一文弄懂Javascript深拷贝与浅拷贝1Javascript数据存储规则2浅拷贝3部分深拷贝3.1Object.assign3.2slice()3.3concat()3.4拓展运算符4完全深拷贝4.1_.cloneDeep()4.2结构化拷贝4.3json.stringify()4.4循环递归4.5jQuery.extend()5总结一文弄懂J
- 2024-02-22Vue学习笔记10--数据代理
数据代理:通过一个对象代理对另一个对象属性的操作(读或写) 代码如下所示:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0">
- 2023-12-18object对象
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><script>//字面量的方式创建对象varobj0={
- 2023-11-15【你不知道的JavaScript】this关键字
没有this时,需要传入上下文获取name,在多个上下文时,代码变得繁杂重复varme={name:"Kyle"};varyou={name:"Reader"};functionidentify(context){returncontext.name.toUpperCase();}functionspeak(context){vargreeting="Hello,I&
- 2023-11-11四则运算
#include<iostream>#include<stack>#include<deque>#include<string>usingnamespacestd;//C++混合四则运算intpri(charc)//标识运算符优先级{switch(c){case'+':case'-':return0;break;
- 2023-11-11四则运算
#include<iostream>#include<stack>#include<deque>#include<string>usingnamespacestd;//C++混合四则运算intpri(charc)//标识运算符优先级{switch(c){case'+':case'-':return0;break;
- 2023-11-11四则混合运算
#include<iostream>#include<stack>#include<deque>#include<string>usingnamespacestd;//C++混合四则运算intpri(charc)//标识运算符优先级{switch(c){case'+':case'-':return0;break;
- 2023-09-04判断对象是否发生变化,常用于监听页面表单是否修改并给出保存提示
本文主要封装方法,实现用户离开表单编辑页面时弹出提示框,若表单数据发生变化,则提示用户是否保存当前页面的信息,如图: 封装方法:1/**2*比较俩个对象之间的差异,项目中多处用到监听表单数据是否改动,故封装此方法3*如果数据改动,则返回新旧对象记录改动字段的新旧值4
- 2023-08-11typeScript学习-TS类型-合成类型
typeScript学习合成类型:联合类型,交叉类型联合类型:letstr:srting|number="abc"str=3交叉类型:typeObj1={username:string}typeObj2={age:number}letobj:Obj1={username:'zhangsan'}letobj2:Obj2={age:23}letobj3:Obj1&Obj2={username:
- 2023-08-10java多线程:死锁
一、死锁的定义 多线程以及多进程改善了系统资源的利用率并提高了系统的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 所谓死锁是指两个或两个以上的线程在
- 2023-07-30mermaid学习笔记
mermaid功能(基础)关于设计各种图来梳理工程接口流程图定义graph[TB|BT|LR|RL]说明是流程图(参数代表从上往下还是从左往右)其他概念---:实线|-->:带箭头实线|==>:带箭头粗实线并且在也可以(==|--)text(--|==)(-|>)来实现线上有文本的格式定义对象:对象[xxx]代表
- 2023-07-28反射将值转换为特定类型
1.给定一个实参,以及期望类型private<T>TgetValueByClass(Objectobj,Class<T>cs){Stringobj2=String.valueOf(obj);Objectobj3;if(cs.equals(String.class)){obj3=obj2;}elseif(cs.equals(int.cl
- 2023-07-18深拷贝函数
1functiondeepClone(oldData){2if(typeofoldData==='object'&&oldData!==null){3letres=Array.isArray(oldData)?[]:{}4for(letkinoldData){5
- 2023-07-11适配器模式解决数据格式适配问题
@RestController@RequestMapping("/ClientUserAssist/")publicclassClientUserAssistController{@AutowiredClientUserAssistMapperclientUserAssistMapper;/**子系统数据导入接口**/@Transactional(rollbackFor=Exception.class)@PostMa
- 2023-06-19在 JavaScript 中,判断一个对象是否为空有几种方法。
使用Object.keys()方法检查对象的键值对数量:functionisObjectEmpty(obj){returnObject.keys(obj).length===0;}//示例用法constobj1={};console.log(isObjectEmpty(obj1));//输出:trueconstobj2={name:'John',age:25};console.log(isObjectEm
- 2023-06-13碰撞测试
<script>constdiv1=document.getElementById('div1')constdiv2=document.getElementById('div2')functionmove(domElement){domElement.onmousedown=function(e){constmouseX=e.clientX,mouseY=e.clientY,oldLeft=domEle
- 2023-06-12改变this指向
三者都可以改变函数的this对象指向三者第一个参数都是this要指向的对象,如果如果没有这个参数或参数为undefined或null,则默认指向全局window三者都可以传参,但是apply是数组,而call是参数列表,且apply和call是一次性传入参数,而bind可以分为多次传入bind是返回绑定this之后