• 等级
  • 13467 访问
  • 63 原创
  • 20 转发
  • 91361 排名
  • 7 评论
  • 2 获赞

如何遍历DOM树?数组怎么压缩?

functiontraverse(node){ varresult=[]; varnodes=[].slice.apply(node.childNodes); for(leti=0;i<nodes.length;i++){ letn=nodes[i]; if(n.nodeType===1){//元素节点 ...

2019-03-28 17:42:58

浏览器缓存

浏览器缓存对于用户来说是个好东西,但是在开发过程中就比较烦了,如果不注意,很容易就让浏览器走了缓存,让自己误以为自己的代码没起作用。所以对于一个合格的前端开发来说,有必要掌握浏览器的缓存机制,减少开发过程中采坑的可能性。我还是一如既往的实践派,先用express做一个简单的服务器来看看效果。constexpress=require('express');constapp=...

2019-03-27 19:33:14

React梳理

转自:https://www.zhihu.com/question/47686258/answer/107209140虽然原作者的废话挺多的,但是耐心看下去,还是很有收获的。一、引子这是关于一把玄铁重剑,一本经书,和一套轻功步法的故事。让我们先从普通程序猿们的日常工作内容说起,一般来说,程序猿们大部分时间关注的可能不是研发某个具体算法,这是算法工程师/数学家们擅长的东东。程...

2019-03-26 18:58:14

@babel/polyfill的使用

@babel/polyfill使用的坑还是比较多的:最需要理解的是,babel只会转换E6语法,而不会转换新的api,让新的api生效的方法是使用传统的polyfill,为此需要引入这个模块 安装的时候必须用--save保证引用到生产环境而不是开发环境,当然,弄错了,自己手动在package.json中修改也是可以的。 浏览器环境下使用,用script标签引用模块下的polyfill....

2019-03-26 09:22:14

利用h5 canvas画布操作图片

canvs画布可以直接获取到图像数据,从而进行图像操作,原理很简单,但是实现起来还是会有很多坑。1.本地图片的协议为file://且域名为空,因此在canvs中获取getImageData时会出现跨域问题解决方法:讲图片和网页都放到同一个服务器上即可。可以自己用springboot快速搭建一个服务器。不过最简单的还是用nginx做一个静态资源服务器。2.想要动态改变canvas画布,...

2019-03-23 10:08:56

一文完全理解JS原型链,实现完美继承

全文没有废话,需字斟句酌需要理解的两个重要概念原型链只是js搜索对象属性的机制,和继承没有本质上的关系,你需要先掌握js是如何在原型链是如何搜索对象属性的 继承的本质是复用父对象的属性,而这些属性分为两类:实例属性和原型属性(位于原型链上的属性)继承的最终目标:子对象的实例属性包括:父对象的实例属性+子对象自定义的实例属性子对象的原型属性:父原型的属性(__proto__和co...

2019-03-17 11:23:43

前端环境安装

使用vue-cli快速搭建脚手架的过程中,会涉及各式各样的工具,本文仅记录下来每个工具的作用。Node.js是基于ChromeV8引擎的JavaScript运行环境,为JavaScript提供了服务端运行的能力。windows上安装:从官网下载安装文件 使用安装文件安装,默认会选中安装npm并且会添加PATH路径安装完成后:node.js会安装在自选的目录下 npm默认...

2019-02-26 14:45:12

Vue.js官网教程梳理

Vue.js的官网教程很详细,这里做一个关键点梳理,方便查阅。基础:Vue实例:创建一个Vue实例 只有当实例被创建时 data 中存在的属性才是响应式的 Vue实例自带有$开头的实例属性和方法 Vue还有生命周期钩子函数,就是生命周期各个阶段会执行的函数模板语法:Vue.js模板都是合法的html 插值(把Vue实例中的值插入的html中)这个值可以是文本原始HTM...

2019-02-17 22:10:20

Node.js由简入繁

 目标是由最简单的东西开始,一步一步理清楚Node.js的MVC架构的一般骨架。一,模块1.创建模块//first.jsvars='Hello';functiongreet(name){ console.log(s+','+name+'!');}//把模块中需要对外提供的功能暴露出去module.exports={ greet:gree...

2019-02-14 09:02:05

java高精度

关于java里的大整数,高精度数怎么使用的板子。题目详见acwing114大整数用BigInteger高精度用BigDecimal。包括加减乘除,各种对结果取整方式等。熟悉了之后,用起来还是很方便的。importjava.util.Scanner;importjava.util.Arrays;importjava.math.BigDecimal;importj...

2019-02-07 22:37:24

JavaScript-06

PS:关于JS的学习,暂时就告一段落了。临近新年,杂事很多。JQuery:之前只知道JQuery是JavaScript框架,就是简化了操作DOM。理解得比较片面。事实上使用JQuery除了简单还有其他的好处:消除浏览器差异:你不需要自己写冗长的代码来针对不同的浏览器来绑定事件,编写AJAX等代码; 轻松实现动画、修改CSS等各种操作。既然如此,那么JavaScript能做的,JQu...

2019-01-27 12:36:28

JavaScript-05

新特性:ES6:Promise:Promise是一种异步编程的解决方案,我们一直在使用的异步编程的解决方案是:事件+回调函数。这种做法不是不行,只是Promise更加方便而已。先看代码,知道怎么做,再去探究为什么这样做可以。这是我比较喜欢的学习方式。//创建Promise对象varpromise=newPromise(function(resolve,reject...

2019-01-26 10:46:57

JavaScript-04

新特性:设置原型:前一篇有一点没有说的是:__proto__并不是ECMAScript标准,尽管有很多浏览器实现了这个属性。ES5的时候引入了Object.create():vara={a:1};//a--->Object.prototype--->nullvarb=Object.create(a);//b--->...

2019-01-25 13:19:05

JavaScript-03

日期类:vard=newDate();d//ThuJan24201919:44:27GMT+0800(中国标准时间)d.getFullYear();//2019d.getMonth();//0//月份从0开始反人类d.getDate();//24d.getHours();//19d.getMinute...

2019-01-24 23:45:57

JavaScript-02

ES6:...rest:可变参数arguments的方式虽然想法简单,但是用起来还是比较麻烦的,所以引入了...rest参数,rest是一个数组,如果多传了值,多的值就组成了rest数组,如果没有那么rest并不是undefined而是[]空数组。可以想到rest数组实现非常简单就是做个装饰类把arguments多余的封装进[]。functionabs(x,...rest){...

2019-01-23 12:04:47

JavaScript-01

EMCA(EuropeanComputerManufacturersAssociation) 欧洲计算机制造商协会EMCAScript,是JavaScript语言的标准,JavaScript可以看作是EMCAScript的实现(虽然是现有JS后有ES)EMCA会在每年的6月份正式发布一次规范的修订,而这次的发布也将作为当年的正式版本。以后的改动基于上一版本进行修改。ES6是15年...

2019-01-22 21:22:29

java Object的equals和hashcode

equals和hashcode是Object的方法。因此每个类都具有这两个方法。这里直说当我们自定义对象后需要把对象放进集合中时,这两个方法如何工作。importjava.util.HashSet;importjava.util.Set;publicclasstest{ staticclassrel{ intx; inty; rel(intx,...

2019-01-20 12:06:53

实体类循环引用的解决

做orm映射的时候,因为表之间的各种关系,常常会出现两个实体类之间相互引用。有三点内容需要考虑,相互引用出现在实体类之间只要不滥用就不会出现无限递归的情况,当然一不注意也很容易无限递归。 @ManyToOne和@OneToMany在一对关系中同时出现,那么从数据库中查数据也就orm的时候,是不会出现无限递归的,理由和第一条一样只是在两个实体类之间做了循环引用。所以可以推断出,orm...

2019-01-19 12:16:39

关于Java ArrayList

每次刷题,都被这个东西坑,很烦,特此记录。int[]转List<Integer>转不了需要Integer[]转List<Integer>。直接用int[]转过去是List<int[]>。Integer[]a={1,2,3};List<List<Integer>>rs=newArrayList&l...

2019-01-17 11:12:22

LRU算法

LRU是内存置换算法中的最近最少使用算法,原理如下:可以看到LRU的原理很简单,但是实现起来就不简单了。leetcode146题要求设计一个插入页面和获取页面都是O(1)的算法这个其实就不容易了。如果不考虑效率,直接用单链表实现很简单,事件复杂度get为O(n)put也为O(n)。为了提高效率,用双向链表+hashMap的方法。 classLRUCache{...

2019-01-14 18:35:43

欲乘风

关注