前端基础
文章平均质量分 74
_未名
这个作者很懒,什么都没留下…
展开
-
原生实现bind方法
想要用原生js写一下bind方法,嗯,让我们先来了解一下bind方法吧,先看一波官方的解释(MDN):bind() 函数会创建一个新函数(称为绑定函数),新函数与被调函数(绑定函数的目标函数)具有相同的函数体。当新函数被调用时this值绑定到bind()的第一个参数,该参数不能被重写。绑定函数被调用时,bind()也接受预设的参数提供给原函数。一个绑定函数也能使用new操作符创建对象:这种行为就...原创 2018-05-13 12:16:14 · 5435 阅读 · 0 评论 -
Promise 学习笔记
Promise这个特性真的很赞,他帮我们解决了回调地域的问题。但是平时用到promise也就两行代码,.then.then.catch ,啥也不懂跑通代码就行,最近在看Event loop 的时候才发现自己对promise知之甚少,所以抓紧来学习一波。本文主要参考:阮一峰 ES6入门 promise自己再来写一遍目的是加深自己的理解,梳理一遍能够掌握的更好。基本信息promise是...原创 2019-04-24 17:37:20 · 270 阅读 · 0 评论 -
debounce 与throttle
背景开发过程中我们会遇到一些场景,事件频繁被触发,导致频繁的DOM操作等,导致UI卡顿 甚至浏览器崩溃等。1、window对象的resize、scroll 事件2、拖拽时的mousemove事件3、input的change、keyup事件等4、游戏中的mousedown、keydown事件5、发送请求按钮为了防止用户不停的点击解决方案这些场景我们会对他做节流处理,也...原创 2018-11-10 13:47:07 · 298 阅读 · 0 评论 -
钩子函数是什么?
什么是钩子函数?先来看一段百科:钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。emmmm,认认真真读三遍。get关键词,在系统级对所有消息进行过滤,这是什么意思呢?是说钩子函数是在一个事件触发的时候,在系统级捕获到了他,然后做一...原创 2018-08-25 18:40:33 · 25722 阅读 · 0 评论 -
《图解http》读书笔记(三)
第七章 确保web安全的HTTPSHTTP在安全性方面并没有保障,所以我们不得不提到HTTPS,HTTPS并非是一种新的协议,HTTPS = HTTP + SSL,相信大家都知道,接下来一起看一下https到底是什么吧?HTTP存在的问题:明文传输,不加密 不验证通信方的身份 无法保证报文的完整性所以,https也就是HTTP + 加密 + 认证 + 完整性保护 ,弥补了http...原创 2018-08-17 14:33:20 · 386 阅读 · 0 评论 -
http2.0
二进制 Http2 采用二进制传输数据,而非http1.x的文本格式。多路复用 http2的一个非常重要的改进。多路复用,简单来说就是一条TCP连接上面可以并发多个请求。 http1.x: 一个TCP连接上面同时只能发送一个http请求,也就是说第二个请求必须等第一个请求的响应返回才能发送。 http 管线化:多个请求可在一个TCP连接中发送,发送过程中无需等待前面请求的...原创 2018-08-26 21:23:59 · 277 阅读 · 0 评论 -
《图解http》读书笔记(一)
《图解http》是http入门级别的书,图文并茂,对初学者十分友好。强烈推荐~最近又看了一遍,简单地写一下读书笔记吧。【第一至五章】第一章 网络基础输出一串url,点击回车就可以看到web页面,web页面是怎么显示出来的呢?web浏览器向web服务器发送请求,获取资源,web页面显示。web是基于http协议进行通信的。http通信又是基于TCP建立连接的,图为通信过程。应用层:决...原创 2018-08-16 22:16:29 · 476 阅读 · 0 评论 -
《图解http》读书笔记(二)
第六章 HTTP首部字段通用首部字段1.Cache-Control请求指令:(请求头里面带Cache-Control时的指令)指令 参数 说明 no-cache 无 强制向源服务器再次验证 no-store 无 不缓存请求或响应的任何内容 max-age=[秒] 必须 Cache-Control:m...原创 2018-08-18 19:16:45 · 276 阅读 · 0 评论 -
如何处理公共模块--对比npm和git submodule
先说一下使用场景:当多个项目中用到了公共模块,如何处理这些公共模块呢?举个例子:当前项目中用到了一些组件Loading、Input啊,一些公共组件,并不想写在项目本身,而是抽出来可以为多个项目所复用。本文主要对比以下两种方式:1. 把公共组件写成一个npm包,使用时npm install安装即可2. 公共组件单独写成一个项目,使用时用git submodule引入到主项目中下面比较这两种方式的异同...原创 2018-06-17 23:51:46 · 3339 阅读 · 0 评论 -
单点登录的解决方案
背景项目组的多个子项目想要实现统一登录,也就是多个项目共用一个登录页面,在A项目登录成功时,访问B项目页面时是不用登录的。先说一波cookie的概念在浏览器中,打开控制台,选择Application,点击cookie下面的子选项,就可以看到cookie了。cookie是在服务器端生成的,返回给客户端,由客户端来保存。上图列表中每一条都是一个cookie。Name :名称,一个唯一确定cookie的...原创 2018-06-17 23:46:28 · 7544 阅读 · 0 评论 -
css画三角形
用css怎么画一个三角形?原创 2018-06-17 23:40:38 · 882 阅读 · 0 评论 -
原生实现call、apply方法
大学的时候,一位大佬跟我说,让我用原生写一下call、apply方法,我没写。直到现在。。。。拖延症真的不是吹的。call先来看官方解释:call()方法调用一个函数,其具有一个指定的this值和分别地提供的参数(参数的列表)。也就是说使用call方法,你可以指定被调用函数的this值,并且给他传参数。接下来我们自己实现一个call方法。1、模拟如何指定this的值先来看一段代码function ...原创 2018-06-17 23:33:21 · 6224 阅读 · 3 评论 -
js base64 转file文件
需求今天的需求是后台大佬返回给我文件的base64,前端需要把base64转成文件并下载。开始搬砖听着好简单的样子,当然去百度一波:js 图片base64转file文件的两种方式。作为一个cv程序员,我觉得可以下班了。一波操作后,居然报了个错。//将base64转换为文件dataURLtoFile(dataurl) { var arr = dataurl.split...原创 2019-08-29 19:57:13 · 6231 阅读 · 0 评论