这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言asyncawait语法是ES7出现的,是基于ES6的promise和generator实现的generator函数在之前我专门讲个generator的使用与原理实现,大家没了解过的可以先看那个手写generator核心原理,再也不怕面试官问我generator原理这里就不再赘述generator,专门的文章讲专门的内容。await在等待什么我们先看看下面这代码,这是asyncawait的最简单使用,await后面返回的是一个Promise对象:asyncfunctiongetResult(){awaitnewPromise((r
packagecn.daheww.demo.juc.reentrylock;importsun.misc.Unsafe;importjava.lang.reflect.Field;importjava.util.concurrent.locks.LockSupport;/***@authordaheww*@date2022/7/7*/publicclassMiniReentryLockimplementsLock{/***锁的是什么-->资源-->state*0-->未加锁*>0->加锁*/privatevolatileintstate;/***独占模式*同一时刻只有一个线程可以持有锁,其它线
packagecn.daheww.demo.juc.reentrylock;importsun.misc.Unsafe;importjava.lang.reflect.Field;importjava.util.concurrent.locks.LockSupport;/***@authordaheww*@date2022/7/7*/publicclassMiniReentryLockimplementsLock{/***锁的是什么-->资源-->state*0-->未加锁*>0->加锁*/privatevolatileintstate;/***独占模式*同一时刻只有一个线程可以持有锁,其它线
快速认识ORM对象-关系映射,即Object/RelationMapping,主要实现程序对象到关系数据库的映射。现在.Net比较流行的ORM框架有:EF、SqlSugar、Dapper、FreeSql、Nhibernate、IBatis.Net等。O/RM只是一层代码的封装,底层还是基于ADO.NET完成对数据库的访问。一般写法如果我们要写一个查询,用ADO.NET就会如下这样写。privatestaticstringConnectionStringCustomers="DataSource=.;Database=Customers;"+"UserID=sa;Password=123456;
快速认识ORM对象-关系映射,即Object/RelationMapping,主要实现程序对象到关系数据库的映射。现在.Net比较流行的ORM框架有:EF、SqlSugar、Dapper、FreeSql、Nhibernate、IBatis.Net等。O/RM只是一层代码的封装,底层还是基于ADO.NET完成对数据库的访问。一般写法如果我们要写一个查询,用ADO.NET就会如下这样写。privatestaticstringConnectionStringCustomers="DataSource=.;Database=Customers;"+"UserID=sa;Password=123456;
自从工作以来,写项目的时候经常需要手写一些方法和引入一些js库JS基础又十分重要,于是就萌生出自己创建一个JS工具库并发布到npm上的想法于是就创建了一个名为learnjts的项目,在空余时间也写了几个工具函数,后续还会再继续增加...这篇文章就是一篇实战文章,我把自己创建项目,发布到npm,以及遇到的问题和解决方案全都记录了下来,如果你也想创建一个自己的js工具库,可以根据这篇文章一步一步的尝试一下github项目地址npm项目地址创建项目打开命令窗口,创建一个项目文件mkdir learnjts // 创建了一个名为 learnjts 的文件夹cd learnjts // 进入此文件夹
自从工作以来,写项目的时候经常需要手写一些方法和引入一些js库JS基础又十分重要,于是就萌生出自己创建一个JS工具库并发布到npm上的想法于是就创建了一个名为learnjts的项目,在空余时间也写了几个工具函数,后续还会再继续增加...这篇文章就是一篇实战文章,我把自己创建项目,发布到npm,以及遇到的问题和解决方案全都记录了下来,如果你也想创建一个自己的js工具库,可以根据这篇文章一步一步的尝试一下github项目地址npm项目地址创建项目打开命令窗口,创建一个项目文件mkdir learnjts // 创建了一个名为 learnjts 的文件夹cd learnjts // 进入此文件夹
目录this指向this定义this的两种绑定方式默认绑定显式绑定new绑定(具有显式绑定效果)隐式绑定(具有显式绑定效果)this绑定优先级函数的this指向this绑定丢失的情况手写call、apply和bindthis指向this定义this用于指定对当前对象的引用。this的两种绑定方式默认绑定在严格模式下,全局作用域的this对象会变为undefined。在非严格模式的普通函数若不作为对象方法,它的this绑定都会自动绑定到window全局对象上,即默认绑定。显式绑定函数可以使用call/apply/bind等方法绑定this对象。这种方式属于强制绑定措施,this的指向是可预见的(
目录this指向this定义this的两种绑定方式默认绑定显式绑定new绑定(具有显式绑定效果)隐式绑定(具有显式绑定效果)this绑定优先级函数的this指向this绑定丢失的情况手写call、apply和bindthis指向this定义this用于指定对当前对象的引用。this的两种绑定方式默认绑定在严格模式下,全局作用域的this对象会变为undefined。在非严格模式的普通函数若不作为对象方法,它的this绑定都会自动绑定到window全局对象上,即默认绑定。显式绑定函数可以使用call/apply/bind等方法绑定this对象。这种方式属于强制绑定措施,this的指向是可预见的(
目录手写PromisePromise构造函数三个状态(pending、rejected和fulfilled)三个方法(resolve、reject和then)resolve方法实现要点reject方法实现要点then方法实现要点Promise解决程序(resolvePromise方法)运行官方测试用例Promise其他方法补充容错处理方法静态方法手写PromisePromise构造函数我们先来写Promise的构造函数。需要处理的事件如下:Promise状态记录:this.state记录成功或失败的值:this.value和this.reason收集解决和拒绝回调函数:this.resolve