
学习总结
文章平均质量分 72
Dilomen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
初识indexedDB
在大部分前端业务场景下,往往cookie,sessionStorage,localStorage等存储方案就能处理大部分问题。但是随着前端出于性能的考虑,以及业务的复杂程度提升,前端就需要一种能够存储大量数据的方案。于是浏览器推出了2种方案:关系型数据库webSQL和非关系型数据库indexedDB由于W3C的规定,导致WebSQL没有称为规范,所以支持性并不是很好。而indexedDB则不同,其天生就是JS的数据结构,所以更加适合作为前端的存储方案。indexedDB的支持情况首先作为原创 2020-07-16 22:59:40 · 695 阅读 · 0 评论 -
Blob,DataURL和File之间的转换
Blob对象是一个不可变、原始数据的类文件对象File对象继承于Blob,并具有支持用户系统上的文件的拓展功能DataURL是Base64编码,可通过window下的btoa,atob方法来分别做编码和解码DataURL转成File对象/** * @param {String} dataurl 传入的文件base64编码 * @param {String} filenam...原创 2020-01-29 21:50:00 · 1894 阅读 · 0 评论 -
重新认识一下“闭包”
作用域在提闭包前,少不了作用域的概念,因为闭包就是因为作用域引发的。每个函数都有自己的执行环境,当代码在一个环境中执行时,会创建变量对象的一个作用域链,保证执行环境有权访问当前环境所有的变量和函数的有序访问,如果是在全局环境,那就是全局作用域,如果是在局部环境,那就是局部作用域ES6 之前,在 JS 中是没有块状作用域,不像别的语言{}包裹就是一个块状作用域,但是函数是有作用域的,外部的环...原创 2020-01-05 16:29:32 · 227 阅读 · 0 评论 -
如何判断文本是否溢出
对于一些文本内容超过包裹层,我们经常会采用省略号的形式取隐藏溢出部分,而这通常只需要通过css就可以解决#single-line { width: 100px; border: 1px solid #333; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}#multi-line { ...原创 2019-10-26 14:56:54 · 7635 阅读 · 0 评论 -
兼容的JS事件绑定和移除
function addEvent(element, type, handler) { if (window.addEventListener) { element.addEventListener(type, handler, false); } else if (window.attachEvent) { element.att...原创 2019-02-25 21:37:26 · 427 阅读 · 0 评论 -
实现JS中push,pop,unshift,shift的功能
push方法的实现,分析push的功能:向数组中添加接受的参数,可接受不同的数据类型,也可以接受多个参数,且返回最终数组的长度Array.prototype.push = function () { var argLength = arguments.length; var arrLength = this.length; for (var i = 0; i <...原创 2019-02-25 21:44:16 · 536 阅读 · 0 评论 -
如何实现JS链式调用方法
只需在方法调用后返回this即可 var user = function(name, age) { this.name = name; this.age = age; }; user.prototype.getName = function() { console.log(this.name); return this;...原创 2019-02-26 19:28:43 · 2281 阅读 · 2 评论 -
JS前端生成pdf文件和excel文件
生成pdf文件:使用html2canvas和jspdf插件详情:jspdfhtml2canvas通过下面指令安装或者使用CDNnpm install --save html2canvas jspdf然后分别引入import html2canvas from 'html2canvas'import JsPdf from 'jspdf'先通过html2canvas将DOM元素整...原创 2019-04-18 17:51:48 · 4566 阅读 · 0 评论 -
window.history路由及在react-router-dom中的使用
首先来看history暴露出属性和方法(以下图来自MDN)以及谷歌浏览器的history输出,可以看到History的构造方法和原型对象属性:length 当前窗口的浏览路径数量 scrollRestoration 设置默认的滚动恢复行为, 可选值 "auto" || "manual", 前者进入页面还会停到之前的滚动位置,后者会重置滚动位置到顶端 sta...原创 2019-07-03 14:41:16 · 3933 阅读 · 0 评论 -
HTML资源加载优化
在页面中都会加载脚本文件,而加载脚本文件的时候,往往会阻塞别的文件的加载,如样式文件的加载,DOM的解析等等,所以一般建议将<script>标签放到最后加载,从而提升页面的渲染速度但是如果嫌麻烦,浏览器提供了两种方式方便解决这个问题,defer和async属性,下面是浏览器对两者的支持程度主流浏览器对defer属性的支持程度主流浏览器对async属性的支持程度...原创 2019-01-27 20:56:56 · 335 阅读 · 0 评论 -
package.json配置文件的理解
如果需要创建一个node.js项目(在node上运行的项目,包括vue,react),就需要先初始化一个package.json的配置文件进行对模块的描述,该文件说明了项目的名称,作者,项目所需的运行和开发环境等等,是项目的必需文件可以在项目文件夹下,输入以下命令,生成一个package.json文件npm init输入命令后,需要填几个内容,除了第一个项目名和第二个版本是必填的,其...原创 2018-12-22 23:17:12 · 569 阅读 · 0 评论 -
JS字符串的方法
长度length() 返回字符串的长度var a = "Hello World";console.log(a.length); //11组合建立数组将子字符串push,最后用join连接var a = 'abc'var b = 'def'var arr = []arr.push(a)arr.push(b)console.log(arr.join('')) ...原创 2018-12-04 22:46:05 · 171 阅读 · 0 评论 -
JS内置类型易错点
JavaScript 有 7 种内置类型,有分为两大类,基本类型和对象(Object)六种基本类型:null,undefined,string,boolean,number,symbolJS提供了基本类型的引用类型(包装类):Boolean,Number,String可以通过者三个引用类型来创建相应的变量创建一个字符串var str = new String("text")...原创 2018-10-21 22:15:37 · 246 阅读 · 0 评论 -
客户端存储 sessionStorage , localStorage和cookie
sessionStorage , localStorage和cookie三者的区别sessionStorage 和 localStorage均为一个对象(一个持久化关联数组),索引(键名)和值(键值)都由字符串形式显示两者不同之处在于对数据的有效期(存储多久)和作用域(不同的网站是否共享数据)cookie除了名和值,还有一些可选的属性来控制cookie的有效期和作用域,cookie会...原创 2018-10-15 22:55:45 · 417 阅读 · 0 评论 -
常见的状态码
状态码:用以反应服务端返回的请求结果1XX(信息性状态码): 接受的请求正在处理 2XX(成功状态码): 请求正常处理完毕,请求成功 3XX(重定向状态码): 需要进行附加操作以完成请求 4XX(客户端错误状态码): 服务器无法处理请求,未识别请求信息,或者查找不到请求的资源 5XX(服务器错误状态码): 服务器内部处理出错常见的状态码:200 :响应结果表明请求被正常处理了,一...原创 2018-08-29 09:11:16 · 304 阅读 · 0 评论 -
关于javaScript数组的方法
创建数组的方法:1.使用Array构造函数var Array1 = new Array(); // 空数组var Array2 = new Array(10); // 10个长度的数组var Array3 = new Array(1,2,3); // 包含1,2,3的元素的数组2.字面量方式var Array = []; // 空数组var Array = [1,2,3...原创 2018-08-19 00:33:14 · 315 阅读 · 0 评论 -
ajax上传文件,使用formData与fileReader
<form action="" enctype="multipart/form-data"> <input type="file" id="file" onchange="addFile()"></form>添加multiple属性,就可上传多个文件function addFile(){ let fi原创 2018-11-09 22:59:06 · 828 阅读 · 1 评论 -
js中this的指向问题
1.this只指向上一级的对象(上一级的对象主要看执行语句决定),如果没有上级对象,就是window对象没有上级对象,就是window对象var name = "kakaka";var sayName = function(){ alert(this.name);}sayName();//没有上一级,所以是window,返回kakaka指向上一级的对象, 如果上一级没有该...原创 2018-04-06 16:07:57 · 687 阅读 · 0 评论 -
js的深复制与浅复制
什么是深复制和浅复制首先在在进入主题之前需要知道:在js中,基本变量和引用对象的引用地址都是存在栈中的 引用对象的值内容都是存在堆中的因此:浅复制其实就是引用对象指向栈中同一个引用地址,当被复制的对象改变时,复制的对象也会随之改变,依旧受被复制对象的牵扯(除非原来的指向了别的地址),相互牵连深复制就是在栈中生成一个新的地址指向原来的堆中的值内容,就是不被牵扯,自成一派产生深...原创 2018-11-17 23:06:25 · 422 阅读 · 0 评论 -
进一步了解JS对象
创建对象var a = {} //通过对象直接量var a = new Object() //通过new创建对象var a = Object.create({x:1}) //第一个参数是对象的原型,第二个作为可选参数,是对属性的描述Object.create(Object.prototype) 相当于 new Objec...原创 2018-11-27 13:02:00 · 212 阅读 · 0 评论 -
理解JavaScript原型链
主要是利用了__proto__这个隐式原型将所有的继承串在了一起,实现了原型链下面是一个new itemTest()的实例,它的__proto__就指向了继承的itemTest的prototype,然后再向上__proto__就是test的prototype,由此构成了原型链每个对象都有一个原型,每个对象的原型也可以拥有一个原型,从而形成原型链 几乎所有 JavaScript 中的对...原创 2018-04-06 16:05:19 · 357 阅读 · 0 评论