- 博客(18)
- 收藏
- 关注
原创 JavaScript 将类数组转换为真正的数组
JavaScript 将类数组转换为真正的数组// 摘抄自Promise源代码var iterableToArray = function (iterable) { if (typeof Array.from === "function") { // ES2015+, iterables exist iterableToArray = Array.from; return Array.from(iterable); } // ES5, only arrays and
2020-06-07 16:30:07
455
原创 JavaScript 事件队列
JavaScript 事件队列JavaScript 是单线程执行代码片段的。早期历史早期(ES6 之前)的 JavaScript 引擎只负责子啊合适的时候执行某一个 JavaScript 代码段,此时的代码主要是被分为很多的事件,然后按照一定的顺序(事件循环队列)进行执行。此时的事件队列主要是靠宿主环境(此时一般都为浏览器)来维护的,存在很多的不可靠性。ES6 的事件队列ES6 之后,由于 Promise 的出现,JavaScript 引擎开始对事件循环队列进行直接控制,从而出现了事件队列(宏任务
2020-06-07 12:47:51
1083
原创 自主实现 Promise.all
自主实现 Promise.all源码// 测试数据const p = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((it) => Promise.resolve(it));/** * @description 实现Promise.all的函数 * @param {Promise<T>[]} array * @returns Promis...
2020-05-07 22:30:27
460
原创 你不知道的JS——读书笔记
基本的编译原理1. 词法分析var a = 2;=>var、a、=、2、;2. 语法分析将词法分析得到的代码块转换为 AST(Abstract Syntax Tree 抽象语法树)3. 代码生成将 AST 转换为可执行的代码JavaScript 编译原理角色:1.编译器 2.作用域 3.引擎实例代码:var a = 2;过程描述:1. 当编译器遇到 var a 声明编...
2020-04-11 22:14:18
255
原创 正则表达式学习笔记(基础版)
正则表达式1.runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1 次或多次)。2.runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表前面的字符可以不出现,也可以出现一次或者多次(0 次、或 1 次、或多次)。3.colou?r 可以匹配 color 或者 colour,? 问号...
2020-04-10 11:01:12
187
原创 lms-client基于React和Ant design的前端项目笔记
项目是开源的,欢迎starps:项目地址lms_serverhttps://gitee.com/tomatogitee/lms_server.gitlms_clienthttps://gitee.com/tomatogitee/lms_client.gitTip:两个项目是一起的,建议一起克隆下来。码云的克隆速度非常快,这里点个赞吧。更新时间:2020年04月10日MiniCs...
2020-04-10 10:38:17
566
原创 lms-server基于koa的后台服务器项目笔记
项目是开源的,欢迎starps:项目地址lms_serverhttps://gitee.com/tomatogitee/lms_server.gitlms_clienthttps://gitee.com/tomatogitee/lms_client.gitTip:两个项目是一起的,建议一起克隆下来。码云的克隆速度非常快,这里点个赞吧。更新时间:2020年04月10日webpac...
2020-04-10 10:21:20
387
原创 eslint校验规则——基于官方文档全面总结
Tip:基于ESLint中文网创作更新时间:2020年04月09日Javascript容易出错的地方(基础错误)for-direction强制 “for” 循环中更新子句的计数器朝着正确的方向移动getter-return强制 getter 函数中出现 return 语句no-async-promise-executor禁止使用异步函数作为 Promise executor...
2020-04-09 22:12:11
1343
1
原创 eslint项目配置——Typescript
非 react 项目的 eslint 配置{ //是否针对根目录进行检测 "root": true, //指定代码运行的寄主环境 "env": { //防止__dirname不能识别的错误 "node": true, //自动启用es6语法和ES6全局变量 "es6": true }, //继承的配置 "extends": [ ...
2020-04-09 11:05:32
1165
原创 CSS笔记——2019-7-20
选择器的优先级:!importan>style>id>class>内联div和span的区别:div是block元素,可以设置宽度和高度;可以用 "style"中的 "text-align: center"将块中的inline元素和inline-block元素居中(需要注意:此时inline-block元素中的inline元素默认剧中,如果不符合要求,需要将...
2019-07-26 21:31:22
207
原创 Git笔记(一)
Git笔记(一)第一步,安装Git开始学习创建版本库第一步,安装GitGit安装包在这里下载(官网下载比较慢,不知为何)或者某盘下载也可以,地址如下(版本为2.22.0 x64 windows):https://pan.baidu.com/s/14ZYlIOXC7C1eCcT7t4KxKQ提取码:cd54安装流程比较简单,傻瓜式的next即可。开始学习Tip1创建版本库创...
2019-07-09 09:03:02
234
原创 二叉树的宽度优先遍历和深度优先遍历
二叉树的宽度优先遍历和深度优先遍历1.宽度优先遍历:即从根节点开始依次遍历左子节点和右子节点,直到所有子节点都变遍历完为止。例如:(此二叉树图片来源于网络)遍历顺序为:从根节点1开始依次遍历左子节点2和右子节点3,下一步分别以左右子节点为根节点,分别遍历对应的左右子节点4,5和6,7。即最终的遍历顺序为:12345672.深度优先搜索即从根节点开始一直遍历左子节点,直到左子...
2019-07-05 10:16:08
4676
原创 二叉树的宽度(广度)优先遍历
二叉树的宽度(广度)优先遍历Java代码如下:import java.util.LinkedList;import java.util.Queue;public class Test1 { private static class BTNode{ public int Data; public BTNode Left; public BTNode Right; publi...
2019-07-05 10:15:29
1148
原创 浅谈何为分布式,何为微服务架构
1. 分布式即某一个服务器为了解决高并发(某几个事件需要在同一时间进行处理即为并发事件;高并发,即大量的事件需要在同一时间进行处理,例如:互联网抢票,同一张票,或者同一批票被多个用户同时进抢购)带来的巨大压力,将自身的能力复制到多台服务器上,让他们共同分担压力。2.微服务架构、微服务架构即:某一台服务器处理某一事务的能力太强,处理的压力很大(比如他可以(有能力)处理很多事情,在企业较小...
2019-07-05 10:14:31
467
原创 验证表单——JavaScript方法设计的工程化
背景:验证表单功能,内容为:验证用户名/邮箱/密码等小白(我会想到的)写法:function checkName(){ //验证姓名}function checkEmail(){ //验证邮箱}function checkPassword(){ //验证密码}......使用方式:单个调用函数(变量)checkName();问题——即:这样设计跟添加了...
2019-07-04 17:08:35
215
原创 Java学习之路——Eclipse中的第一个窗体程序(WindowBuilder的使用)
本文用于记录我创建第一个Java窗体程序的全部过程环境:Windows10 专业版 64位 Eclipse—WindowBuilder Editer1. 创建工程项目选择File-&gt;New-&gt;Java Project给项目命名如下所示:点击Finish在左侧Package Explorer中找到创建的工程文件夹,点开,在src处右键新建一个Class如下图所示:按...
2019-03-17 19:27:32
5984
2
原创 学习Java之Eclipse的WindowBuilder插件安装方法
选择Install New Software点击Work with后面的Add在Location里面输入:http://download.eclipse.org/windowbuilder/latest/Name可以不管,点击Add勾选点击Next等加载完之后点击Finish然后等待右下角安装新软件的读条读完,一般读完(安装完)后会弹出窗口让你重新启动Eclipse,点击...
2019-03-10 14:21:27
373
原创 学习Java之Eclipse平台搭建
这是我的第一篇博客//写他的初衷只是想方便自己查看Java、Eclipse平台搭建的方法,别无他想。首先是搭建Java环境(也可以说是Java安装)进入Oracle官网下载相应的JDK版本网址为:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html下载完成后进行安装,...
2019-03-10 14:08:55
483
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人