- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 koa-html-template使用教程
koa-html-templateIntroductionKoa-html-template makes it easy to render html filesSimple operation and simple syntaxDownloadnpm i koa-html-templateInstructionsconst koa = require("koa")cons...
2019-09-30 09:38:03 600
原创 koa-html-render的使用
koa-html-render的使用koa-html-render 就是在koa里直接返回静态资源的html文件下载npm i koa-html-render创建存储静态html资源的文件夹这里可以自己自定义设置,不过还是推荐使用默认设置,默认会放在项目根目录下的static文件夹里可以看见我创建了一个demo.html<!-- demo.html -->&...
2019-09-29 19:18:34 2073
原创 static-resource-plugin的使用
static-resource-plugin的使用上一篇写了static-resource-plugin的原理实现,这一次就说一说怎么使用下载static-resource-pluginnpm i static-resource-plugin因为是
2019-09-29 18:59:35 221
原创 toUTCString()
toUTCString()这个函数是将 时间转化成世界时,一般在获取资源之后都会返回一个 Date字段,这个字段里面的时间就是使用这个函数生成的(GMT结尾的时间)toUTCString()生成的时间有一个特点,就是 **世界时的 0点 实际上就是北京时间的 8点 **,如果说 世界是时15点,那么北京时间就是 23点了,就是这么一个关系看看 W3C上面的解释可以进行一下测试...
2019-09-29 08:58:18 1248
原创 自己写的类koa-static
自己写的类koa-static上一章我已经分析了中间件的基本机构,现在来写一写 类koa-static功能的插件所谓的类koa-static功能的插件,就是 和koa-static功能基本一样,大致上就是自己定义一个存放静态资源的文件夹,然后把左右的静态资源文件存放进去,然后获取静态资源的时候,可以直接去静态资源的文件夹找到然后直接返回这个插件,我叫做他 static-resource...
2019-09-28 14:51:30 196
原创 koa的中间件
koa的中间件事情是这样的,相信大家对于koa都不会陌生,我今天在处理静态文件的时候安装了一个 koa-static插件来处理静态资源,但是呢,怎么配置都不对,我明明是按照文档来配置的,但是还是不对,会不会是我太菜了2333,于是我烦了,就自力更生,自己动写了一个 koa-static依赖第三方的依赖库有一个不好的地方,就是一旦第三方库出现了问题,如果是简单的配置问题的出错还好,一旦涉及到源...
2019-09-28 09:44:17 213
原创 谈谈promise,谈谈微任务
谈谈promise,谈谈微任务javascript 的异步执行机制,思路基本上是这样的,先执行同步任务,然后执行异步微任务,然后执行异步宏任务还说什么,宏任务是 setTimeOut这些,然后微任务是 promise这些其实,在早些时候,我就测试过setTimeOut和promise的异步执行优先级,那个时候我就知道 promise的异步执行优先级 是要高于 setTimeOut的,如果你...
2019-09-21 19:06:19 2239 1
原创 谈谈中间件
今天就谈谈koa中的中间件人就是这样,在使用一样东西的时候,可能更多的是关注这件东西怎么去使用,或者说怎么才可以才更好的使用,但是往往这样就会忽略这件东西的源代码的实现,或者说核心原理的实现我在使用koa框架的时候,就是为了创建一个简单的http服务器来运行项目就可以了,没想别的,也没怎么深入的去理解koa中间件的原理实现,不过有一点可以确定,那就是既然koa是用javascript写的,那...
2019-09-20 21:10:06 143
原创 所有的数组函数的原生实现
js所有的数组函数的原生实现javascript是一门很有意思的语言,可以原生实现很多东西,小到数组函数,大到框架,Vue,react之类现在就用js原生实现一些数组函数forEach// forEach 的原生实现if(!Array.prototype.myForEach){ Array.prototype.myForEach = function(fn){ ...
2019-09-20 12:24:44 146
原创 css有意思的那些事儿
css有意思的那些事儿今天我发现了一个比较有意思的事儿,style标签放在那里都是预先加载,一般来说,style标签都是放在head标签里面,但是今天我脑子可能进水了,突然想知道如果把style标签放在body标签里边或者body的结束标签之前看看元素是不是还有样式,发现元素依然还是有样式,也就是说,style标签无论放在那里都会预先加载其实仔细想想也不会太惊讶,因为在浏览器渲染html页面...
2019-09-19 20:39:48 231
原创 深度克隆
深度克隆之前我也写过一个深度克隆函数,但是那个时候我只考虑了对象的情况,对于对象和数组混合在一起的情况没有提及,现在就来实现这个更好的深度克隆函数直接上代码function isObject(o){ return Object.prototype.toString.call(o) === "[object Object]"}function isArray(o){ ...
2019-09-18 09:36:10 179
原创 call,apply,bind原生实现
call,apply,bind原生实现if(!Function.prototype.myCall){ Function.prototype.myCall = function(){ var args = Array.from(arguments) var context = args.shift() // this 表示函数 ...
2019-09-18 09:03:43 291
原创 setTimeOut
setTimeOut原理上一次我在写 animation()函数的时候,说到了 setTimeOut的一些特点,这一次就是为了验证这些特点setTimeOut 并不是在过了执行的时间(这个时刻)会立即触发,这个要看过了指定时间之后事件队列里当前的事件是否是空,如果是,那么在那么时刻就会触发,如果不是,那么就是过了指定的时间之后,等待事件队列里当前的事件执行完才会触发因此 setTimeOu...
2019-09-16 09:20:24 876
原创 动画函数animation()的实现
动画函数animation()的实现之前面试的时候,面试官向我提出了这个问题,怎么实现动画函数animation(),有这么几个要求:第一,可以链式调用,因为这个函数是类jquery工具库里的函数,因此要可以实现链式调用,像这样 $(“div”).animation().animation()…第二,要求上一个动画执行完成,才开始执行下一个动画,话句话说,必须是第一个animation()...
2019-09-15 16:53:26 1739
原创 http研究之旅:Last-Modified/Etag
http研究之旅:Last-Modified/Etag我最初学习http的时候,是通过买的一本书《图解http》来进行学习的,但是看过之后发现这本书可以让你大概明白HTTP原理是怎么一回事,换句话说,就是让你对http有一个更加深入的了解,但是吧,你只是了解的话,平时吹吹牛还行,但是一旦让你用代码写出来,感觉自己啥也不会了,哈哈哈,很真实。。。无奈之下,只能自己结合书本所说的去研究代码的实现...
2019-09-14 10:43:04 298
原创 http研究之旅:重定向
http研究之旅:重定向重定向就是,客户端访问服务器资源的时候,这个资源被分配到了新的URI,希望客户端使用新的URI进行访问这里要注意一点就是,当客户端接收到状态码为302的时候,那么客户端会自动访问响应头的lcoation指向的URL,因此设置重定向的时候不要忘记返回302状态码,因为如果返回的状态码是200,那么客户端就不会访问location,那么重定向也就失败了在 koa中可以直...
2019-09-13 22:36:48 503
原创 http研究之旅:expires
http研究之旅:expiresexpires可以控制get请求的时候对于资源的有效期// server.jsrouter.get("/home",async ctx=>{ // ctx.set("Cache-Control","max-age=10") ctx.set("Expires",new Date(Date.now()+60000)+"") con...
2019-09-12 23:20:46 1636
原创 http研究之旅:cache-control
http研究之旅:cache-control这次的内容主要还是针对验证一个知识点:那就是 get请求获取的资源可以缓存为了方便测试,用node搭建了一个简单的服务器// server.jsconst koa = require("koa")const Router = require("koa-router")// const querystring = require("qu...
2019-09-12 23:01:33 546
原创 promise的异步性质
promise的异步性质同步就是现在执行的代码,异步就是将来执行的代码,promise本身就是一个函数,在promise函数内部执行的代码就是同步的代码,但是 then执行的代码是异步的代码then执行异步代码的时候,优先级要高于 延时函数每次链式调用then,都会创建新的异步用一个火车以及车厢的例子来说明一段程序实际上一辆火车,火车里又很多的车厢,现在可以知道了,所有的同步的代码...
2019-09-12 10:21:05 210
原创 面试教训:对于异步的思考
对于异步的思考今天面试的时候,面试官的一个问题直接指出了我的盲区,一直以来,对于javascript异步执行原理我一直不是特别明白,面试官真是一阵见血在《你不知道的js 中卷》里有说明这么一个问题:对于javascript的异步和回调函数的使用之所以这么难理解,最直接的原因是因为我们的大脑更喜欢顺序执行的代码,但是异步执行或者说回调函数会让代码的执行顺序很乱,会让代码很难理解并进行维护说句...
2019-09-11 22:01:20 127
原创 promise的原生实现
promise的原生实现这篇文章不讲promise的作用是什么,promise的出现不仅仅是解决回调地狱的,我会在之后用一篇文章来讲讲promise的作用和意义,这篇文章只讲promise的实现了解promise的特性var pr = new Promise(function(resolve,reject){ resolve(3)})console.log(pr)本人建...
2019-09-09 07:28:19 646
原创 最长回文字串
最长回文字串这个算法题也是比较的有意思,题意就是求出一个字符串的最长回文子串,应该有很多种方法,我分享一下我的算法算法思路回文有两种形式,一种是lol,一种是lool,前者是单核,后者是双核以下是算法步骤:第一步:创建一个索引变量cen来遍历整个字符串,还有一个辅助的变量ocen=cen+1,作用就是判断是单核还是双核,如果 str[cen] === str[ocen],那就是双核,否...
2019-09-07 10:34:12 119
原创 关于keyup,keydown,onclick
keyup keydown onclick关于这三个我感觉大家应该会很清楚,今天面试的时候,面试官问了我这个问题,就是这三个的执行时机是怎样的,有什么关联?这个问题我平常很少去注意,于是当时的脑海里就一个疑问:就是按键可不可以触发onclick事件,我不太确定这个?之所以这么问就是 keyup是按键弹起的时候会触发的事件,keydown是按键按下的时候会触发的事件,这两个是只有按键才可以触...
2019-09-06 16:52:42 1011
原创 接雨水
接雨水这是一道leetcode上的算法题,比较有意思我的算法思路是这样的找到最大值的位置,然后从两边开始遍历function getWater(arr){ var imax = getMax(arr) var left = 0,right = arr.length-1 var i = left,j = right var lefwater = 0,ri...
2019-09-05 14:18:38 99
原创 最长公共子串
最长公共字串对于两个字符串,求出他们的公共子串,举个例子:“acbaed”与“abcadf”的最长公共字串是“acad”有很多算法可以实现,其中有一个是通过二维数组来实现,但是我不太能理解,于是自己就写了一个算法,比较简单也比较实用2333算法思路算了直接上代码吧!function getCommon(str1,str2){ var cache = [] for(le...
2019-09-05 13:52:56 88
原创 javascript关于call函数的原生实现
关于call函数的原生实现都知道javascript中又三个硬绑定函数,call,apply,bind下面是我写的关于call的实现Function.prototype.mycall = function(){ var args = Array.from(arguments) var context = args.shift() var params = args...
2019-09-01 15:30:12 115
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人