06 2018 档案

摘要:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 可以看到这种结构很像一棵完全 阅读全文
posted @ 2018-06-30 21:20 sunmarvell 阅读(947) 评论(0) 推荐(0)
摘要:要说快排的原理,通俗点说就是把一个事情,分成很多小事情来处理,分治的思想。 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。一般选第一个数6作为基准数。接下 阅读全文
posted @ 2018-06-30 12:24 sunmarvell 阅读(1533) 评论(0) 推荐(1)
摘要:圣杯布局与双飞翼布局针对的都是三列左右栏固定中间栏边框自适应的网页布局(想象一下圣杯是主体是加上两个耳朵;鸟儿是身体加上一对翅膀),圣杯布局是Kevin Cornell在2006年提出的一个布局模型概念,在国内最早是由淘宝UED的工程师(传说是玉伯)改进并传播开来,在中国也有叫法是双飞翼布局,它的布 阅读全文
posted @ 2018-06-27 12:11 sunmarvell 阅读(280) 评论(0) 推荐(0)
摘要:理解好文档流,有助于我们对css中定位和浮动的理解。什么是文档流呢,加入自己的理解。文档流的定义如下: 网页在解析时,遵循从上向下,从左向右的顺序。 1、从上至上,从左至右的布局。 2、符合html中标签本身含义的布局,比如某些标签独占一行。有些标签属于行内元素等。 文档流,也称为普通流。下面来讲一 阅读全文
posted @ 2018-06-25 09:41 sunmarvell 阅读(3296) 评论(0) 推荐(0)
摘要:angularJS四大核心特性:MVC、Module(模块化)、指令系统、双向数据绑定。 一、MVC Model:数据模型,其实就是angular变量($scope.XX,$rootScope.XX); View:视图层,Html+Directive(指令); Controller:业务逻辑和控制逻 阅读全文
posted @ 2018-06-20 23:09 sunmarvell 阅读(2779) 评论(0) 推荐(0)
摘要:call、apply、bind方法的共同点和区别:apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;apply 、 call 、bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文(函数的每次调用都会拥有一个特殊值——本次调用的上下文(context 阅读全文
posted @ 2018-06-11 17:09 sunmarvell 阅读(203) 评论(0) 推荐(0)
摘要:1.forEach遍历: function sum(arr) { var result = 0; arr.forEach(function(item,index) { result += item; }); return result; }; 2.reduce function sum(arr) { 阅读全文
posted @ 2018-06-09 22:25 sunmarvell 阅读(2651) 评论(0) 推荐(0)
摘要:修饰器 是一个函数,用来修改 类的行为。 基本上,修饰器的行为就是下面这样。 下面是另一个例子,修改属性描述对象的enumerable属性,使得该属性不可遍历。 core-decorators.js core-decorators.js是一个第三方模块,提供了几个常见的修饰器,通过它可以更好地理解修 阅读全文
posted @ 2018-06-07 11:44 sunmarvell 阅读(162) 评论(0) 推荐(0)
摘要:Generator 函数是 ES6 提供的一种异步编程解决方案. 执行 Generator 函数会返回一个遍历器对象 Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield表达式,定义不同的内部状态(yield在英语 阅读全文
posted @ 2018-06-07 10:59 sunmarvell 阅读(151) 评论(0) 推荐(0)
摘要:遍历器(Iterator)是一种统一的接口机制,来处理所有不同的数据结构。 JavaScript 原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6 又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map, 阅读全文
posted @ 2018-06-06 21:51 sunmarvell 阅读(146) 评论(0) 推荐(0)
摘要:Promise Promise 是异步编程的一种解决方案。 Promise对象有以下两个特点。 (1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状 阅读全文
posted @ 2018-06-06 18:26 sunmarvell 阅读(157) 评论(0) 推荐(0)
摘要:Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 new Proxy()表示生成一个Proxy实例,target参数表示所要拦截的目标对象,handler参数也是一个对象,用来定制拦截行为。 如果h 阅读全文
posted @ 2018-06-06 11:26 sunmarvell 阅读(170) 评论(0) 推荐(0)
摘要:创造对象实例 访问对象属性: 属性名中若包含可能会导致语法错误的字符,比如空格或者保留字,要用方括号访问!不能用点表示法访问。 点表示法比较常用; 属性类型 1.数据属性 有4个描述其行为的特性 writable,(能否修改属性值) configurable(定义对象的属性能否delete), en 阅读全文
posted @ 2018-06-05 11:51 sunmarvell 阅读(130) 评论(0) 推荐(0)
摘要:Map与Array 数据结构横向对比,用Map和Array分别实现最基本的增删改查; //增 //删 //改 //查 总体来说,Map的操作更方便简洁一些。 Set与Array 数据结构横向对比,用Map和Array分别实现最基本的增删改查; //增 //删 //改 //查 总体来说,Set储存对象 阅读全文
posted @ 2018-06-04 17:28 sunmarvell 阅读(256) 评论(0) 推荐(0)
摘要:Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 Set 函数可以接受一个数组作为参数,用来初始化。 Set中重复的元素不会添加,可以用于去重 Set不会转换数据类型,数字就是数字,字符串就是字 阅读全文
posted @ 2018-06-04 12:04 sunmarvell 阅读(231) 评论(0) 推荐(0)
摘要:ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。 如果有一种机制,保证每个属性的名字都是独一无二的,这样就从根本上防止属性名的冲突。这就是 ES6 引入Symbol的原 阅读全文
posted @ 2018-06-03 22:48 sunmarvell 阅读(144) 评论(0) 推荐(0)
摘要:一、什么是Flex布局? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex布局。 其中在webkit内核的浏览器中使用时,必须加上-webkit-前缀,以下不再重复说明。 注意,设为Flex布局以后,子元素的float、c 阅读全文
posted @ 2018-06-03 16:46 sunmarvell 阅读(141) 评论(0) 推荐(0)
摘要:1. 标准盒子模型: width只是内容的宽度。 元素的总宽度=width + padding*2 +border*2 +margin*2。 IE盒子模型: width=内容的宽度 + padding*2 + border*2。 元素的总宽度=width +margin*2。 2.top top 属 阅读全文
posted @ 2018-06-02 09:54 sunmarvell 阅读(389) 评论(0) 推荐(0)
摘要:垂直居中 方法一 这个方法把div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。 实现如图: 能在本身里垂直居中; 优点: container 可以动态改变高度(不需在 CSS 中定义)。当 wrapper 里没有足够空间时,container 不会被截断 缺点: 阅读全文
posted @ 2018-06-01 21:52 sunmarvell 阅读(463) 评论(0) 推荐(0)
摘要:1.Array.of() Array.of用于将一组值,转换为数组。 只有当参数个数不少于 2 个时,Array()才会返回由参数组成的新数组。参数个数只有一个时,实际上是指定数组的长度。 Array.of()生成的数组是不可遍历(iterable)的。 2.Array.from() Array.f 阅读全文
posted @ 2018-06-01 18:16 sunmarvell 阅读(150) 评论(0) 推荐(0)
摘要:1. 二进制和八进制表示法 从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示。 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 将0b和0o前缀的字符串数值转为十进制,要使用Number方法。 2.N 阅读全文
posted @ 2018-06-01 17:23 sunmarvell 阅读(127) 评论(0) 推荐(0)