探索eventloop
事件循环机制浏览器阐述JS脚本scrpit包含异步任务和同步任务,首先同步任务在主线程上执行,当同步任务执行完成后,JS将当前执行栈清空。然后开始执行异步任务,异步任务分为宏任务和微任务,异步任务会放入任务队列当中,宏任务放入宏任务队列,微任务会放入微任务队列。
同步任务执行完之后,先去微任务队列拿出一个微任务,如果执行过程产生了微任务或者宏任务,会将他们放入各自的任务队列。循环往复,直到把微任务队列清空。
紧接着会从宏任务队列中拿出一个宏任务,执行过程中若产生了微任务,首先会把微任务放入微任务队列,然后等这个宏任务执行完成之后就会立即去执行这个微任务,如果没有产生微任务就继续执行下一个宏任务,循环往复,直到清空宏任务。
在宏任务执行完成前的一刻,渲染进程会触发GUI和dom的渲染。
例题分析console.log('script start');setTimeout(function() { console.log('setTimeout');}, 0);Promise.resolve().then(function() ...
koa学习和项目开发学习记录
koa学习和项目开发学习记录编写一个接口的最基本代码
const koa = require('koa')const Router =require('koa-router')const router = new Router()const app = new koa()router.get('/classic/latest',(ctx,next)=>{ ctx.body ={key:"classic"}})// router.routes() 注册中间件app.use(router.routes())app.listen(3000,()=>{ console.log('http监听端口3000')})
中间件中间件-发送http调用的函数,一个实例可以定义多个中间件,中间件调用总是返回promise
app.use注册中间件。ctx上下文,next下一个中间件
// 中间件--就是函数app.use((ctx ...
前端如何优雅的写代码
逻辑判断优化此文是拜读了我司最近更新的优化逻辑判断代码所记下的笔记还有自己的一些看法
优化嵌套层级例:
function supply(fruit,num){ const redFruit = ['apple','cherry'] if(fruit){ if(redFruit.includes(fruit)){ console.log('红色水果') if(num>10){ console.log('数量大于10的红果') } } }else{ throw new Error() } }
判断非状态,直接return
function supply(fruit,num){ const redFruit = ['apple','cherry& ...
Git学习历程
Git学习历程图例概览原图
原图
git安装及配置
设置git仓库的用户名,email
git config -- global user.name 'yourname'git config -- global user.email 'youremail'
还可以配置本地的用户名,email ,本地的用户名密码权重比全局要高,当初始化完成,本项目的用户名邮箱会做本更
git config --local user.name ''git config --local user.email ''
查看当前用户的配置信息
git config --list --local or --lobal
打印结果:
2. 初始化一个git仓库的命令
cd projectgit initor git init myproject
配置免密ssh
:::tip
配置公私钥,如果已经配置过ssh key需要备份:::
cd ~/.sshmkdir key_backupcp id_rs a*key_backup
:: ...