`
文章列表
前端部分: 1.深入探究 eventloop 与浏览器渲染的时序问题
1.使用window.crypto.getRandomValues方法生成随机数组 crypto.getRandomValues接受一个参数typedArray,typedArray的值可以是如下对象的实例: Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array   例如要生成6个0~256的随机整数组成的数组可以这样做: var array = new Uint8Array(6); window.crypto.getRandomValues(array); 2.使用字面量重写构造函数prototy ...
本文禁止转载:这里只提供一种解决方案,因此代码不是很完善,我也不会细讲,只做个示例: 示例代码: /** * Created by likeke on 2017/8/11. */ ////复杂的json var json = [ { dad: { name: "bob", age: 12 }, mum: { name: "lkk", ...
Promise已经出现很久了,但鉴于很多初学者还不是很了解也经常有人问到这个,因此就想写一篇文章来讲解一下这方面的知识,本文会尽量用一些简单的实例来说明一些问题,也会尽量做到通俗易懂、简单明了。 参考文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise 一、什么是Promise       Promise是ES6原生提供的一个全局的构造函数,它提供了很多方法供我们使用,它解决了异步操作流程中回掉函数层层嵌套的问题。       当然,看完上面的解释,相信不 ...
可能比较乱,大家可以自己根据情况挑着看 地址:http://pan.baidu.com/share/home?uk=3376070270&view=share#category/type=0 后面会持续更新的
       字典是一种以键 - 值对形式存储数据的数据结构,就像电话号码簿里的名字和电话号码一样。要找一个电话时,先找名字,名字找到了,紧挨着它的电话号码也就找到了。这里的键是指你用来查找的东西,值是查找得到的结果。        JavaScript 的 Object 类就是以字典的形式设计的。本文将使用 Object 类本身的特性,实现一个 Dictionary 类,让这种字典类型的对象使用起来更加简单。你也可以只使用数组和对象来实现本文展示的方法,但是定义一个 Dictionary 类更方便,也更有意思。比如,使用 () 引用键就比使用 [] 简单。当然,还有其他一些便利,比如可以 ...
循环链表和单向链表很相似,唯一的区别是,循环链表的尾节点是指向头节点的,例如下面这样的结构 可以将其理解为一个环形结构,没有头没有尾,很适合做一些无限循环的东西,比如轮播图 循环链表的代码实现 我们只需要在单向链表的基础上稍加改造即可完成循环链表的实现(点击进入单向链表的实现详解)   /************节点*************/ function Node(element) { this.element = element;//当前节点的数据 this.next = null;//下一个节点数据 } ...
1.怎样实现只继承prototype 先看下面的代码: function A(){ this.name="李可可"; this.age=21; } A.prototype.eat=function(){ console.log("I can eat") } function B(){} B.prototype=new A;//B继承了A var cc=new B; cc.eat();//I can eat cc.name;//"李可可" 我们可以看到的是,A继承了B的所有属性,那如果我们只想让B继承A ...
为什么需要双向链表   对于单向链表来说,从链表的头节点遍历到尾节点很简单,但反过来,从后向前遍历则没那么简单。另外,删除节点时我们需要借助于findPrevious这样一个辅助方法来实现,显得很繁琐。(此文章是对上一篇文章的后续,点击此处进入上一篇文章) 双向链表的实现   首先Node类需要增加一个previous属性: function Node(element) { this.element = element; this.next = null; this.previous = null; }   insert方法需要添加previous属性,使其指向 ...
  链表有单向链表、双向链表和循环链表,此篇文章只讲解单向链表,另外两种会在下一篇文章中补充,要真正理解和使用链表的话,建议三种链表结构都了解一下。   平时我们使用最多的数据结构应该是数组,很多东西都可以用数组来轻松实现,但在某些编程语言中,数组的长度是预先设定好的,想要额外添加元素或者删除元素是一件比较困难的事。那么使用链表的话恰恰就解决了这些问题,对于链表来说删除或添加一个元素是非常方便的,除了数据的随机访问(可以实现但是比较麻烦,比如可以通过添加和操作索引值来实现),它几乎可以用在任何可以使用一维数组的情况中。 链表的定义   链表是由一组节点组成的集合。每个节点都使用一个对象 ...
  队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出,这点和栈不一样,在栈中,最后入栈的元素反而被优先处理。可以将队列想象成在银行前排队的人群,排在最前面的人第一个办理业务,新来的人只能在后面排队,直到轮到他们为止。   队列是一种先进先出(First-In-First-Out,FIFO)的数据结构。队列被用在很多地方,比如提交操作系统执行的一系列进程、打印任务池等,一些仿真系统用队列来模拟银行或杂货店里排队的顾客。 一.队列的主要操作: 插入。插入操作也叫做入队,在队尾插入新元素。 删除。删除操作也叫做出队,删除队头的元素。 读 ...
栈的特点: 栈内的元素只能通过列表的一端访问,这一端称为栈顶 先入后出。任何不在栈顶的元素都无法访问,为了得到栈底的元素,必须先拿掉上面的元素 现实生活中的栈:   咖啡厅内的一摞盘子是现实世界中常见的栈的例子。只能从最上面取盘子,盘子洗净后,也只能摞 在这一摞盘子的最上面。   栈的主要方法和属性: 入栈。push方法; 出栈。pop方法; 访问栈顶元素。peek方法; 清除所有栈内元素。clear方法; 记录栈顶位置。top属性; 判断栈内是否有元素存在。length方法; 栈的实现:  从定义一个stack构造函数开始 function Stac ...
在js中,数组是特殊的对象,凡是对象有的性质,数组都有,数组表示有序数据的集合,而对象表示无序数据的集合。 那伪数组是什么呢,当然它也是对象,伪数组一般具有以下特点: 按索引方式存储数据; 具有length属性; 没有数组的push、shift、pop等方法; function的arguments对象,还有getElementsByTagName、ele.childNodes等返回的NodeList对象,或者自定义的某些对象,这些都可以是伪数组。 我们可以通过以下几种方式将伪数组转换为标准数组: 使用Array.prototype.slice.call();Array.p ...
转载自:http://www.cnblogs.com/50614090/archive/2011/08/19/2145620.html 第一章 打开网站慢现状分   在公司访问部署在IDC机房的VIP网站时会感觉很慢。是什么原因造成的?为了缩短页面的响应时间,改进我们的用户体验,我们需要知道 ...
1.css3的transition; 实例:鼠标移入时盒子宽度逐渐变大为300px   <style> div { width:100px; height:100px; background:blue; transition:width 2s; -moz-transition:width 2s; /* Firefox 4 */ -webkit-transition:width 2s; /* Safari and Chrome */ -o-transition:width 2s; /* Opera */ } div:hover { width: ...
Global site tag (gtag.js) - Google Analytics