自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 AngularJS系列——对象详解

1. angular对象   * 由angular.js提供的全局变量   * 方法:     * module(name, []) : 创建模型对象    * bootstrap(document, [name]) : 编码启动angular, 代替ng-app    * element(dom元素对象) : 将dom对象/html标签包装为jQuery对象    * f

2017-04-30 18:44:30 2529

原创 AngularJS系列——表达式、常用指令和过滤器

表达式、常用指令和过滤器都是AngularJS的语法表达式1. 使用Angular表达式:  * 语法:{{expression}}  * 作用: 显示表达式的结果数据  * 注意: 表达式中引用的变量必须是当前域对象有的属性(包括其原型属性)2. 操作的数据  * 基本类型数据:number/string/boolean  * undefined, Inf

2017-04-30 18:31:54 644 2

原创 归并排序

基本思想:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。合并过程:设r[i…n]由两个有序子表r[i…m]和r[m+1…n]组成,两个子表长度分别为n-i +1、n-m。j=m+1;k=i;i=i; //置两个子表的起始下标及辅助数组的起始下标若

2017-04-25 22:18:50 273

原创 AngularJS系列——作用域、控制器、模块和服务

作用域和控制器是AngularJS的重要对象1. 作用域:  * 一个js实例对象, ng-app指令默认会创建一个根作用域对象($rootScope)  * 它的属性和方法与页面中的指令或表达式是关联的2. 控制器:  * 用来控制AngularJS应用数据的实例对象  * ng-controller : 指定控制器构造函数, Angular会自动new此函数创建控制器对

2017-04-25 20:32:58 1015

原创 AngularJS系列——双向绑定和依赖注入

首先,要有数据绑定的概念。View:也就是我们的页面,页面标签(angular指令、表达式)Model:作用域对象($rootScope)数据绑定:数据从一个地方A转移(传递)到另一个地方B, 而且这个操作由框架来完成单向数据绑定:只支持一个方向的数据流向。View——>Model:  ng-init 初始化的效果Model——>View  :{{name}}表达的效果

2017-04-25 14:52:51 2189

原创 AngularJS系列——入门

什么是AngularJS?AngularJS 是一个 JavaScript 框架。它可通过 标签添加到 HTML 页面。简单地说,AngularJS把原来常在后台实现的模板渲染,路由的功能都移到了前端,扩展了html使支持动态视图,从根源上解决了html不适合动态视图的问题。直接在html里绑定数据和逻辑,思路大不相同。AngularJS 使得开发现代的单一页面应用程序(SPAs:S

2017-04-25 13:24:49 363

原创 交换排序——快速排序

基本思想:1)选择一个基准元素,通常选择第一个元素或者最后一个元素,2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。3)此时基准元素在其排好序后的正确位置4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。操作过程:选取第一个元素为基准元素;然后一趟排序,左边是比基准值小的,右

2017-04-24 09:47:32 299

原创 交换排序——冒泡排序

基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。操作过程:这个没什么好说的,大家都很清楚。算法的实现:public static void main(String[] args) { // TODO Auto-g

2017-04-23 15:55:39 289

原创 选择排序——堆排序

前提知识:若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于(或不小于)其子女的值,根结点(堆顶元素)的值是最小(或最大)的。小顶堆:{12,36,24,85,47,30,53,91}大顶堆:{96, 83,27,38,11,09}如果i>1,则双亲是结点[i/2]。也就是说下标i与2i和2i+1是双亲子女关系。 当排序对象为数组时,下标从0开始,所以下

2017-04-23 12:24:59 302

原创 选择排序——简单选择排序

基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。操作方法:第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换;第二趟,从第二个记录开始的n-1 个记录中再选出关键码最小的记录与第二个记录交换;以

2017-04-22 15:46:49 309

原创 插入排序——希尔排序

希尔排序,也叫递减增量排序,是插入排序的一种更高效的改进版本。希尔排序是不稳定的排序算法。  希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位基本思想:所以,希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插

2017-04-22 15:08:26 284

原创 (带哨兵)直接插入排序

基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用。哨兵有两个作用:① 进人查找(插入位置)循环之前,它保存了R[i]的副本,使不致于因记录后移而丢失R[i]的内容;② 它的主要作用是:在查找循

2017-04-22 13:02:05 1951

原创 AJAX跨域解决方案

1.为什么会出现跨域无法访问的情况?         跨域是指不同域名之间的相互访问。当要在在页面中使用js获取其他网站的数据时,就会产生跨域问题,比如在网站中使用ajax请求其他网站的天气、快递或者其他数据接口时以及hybrid app中请求数据,浏览器就会提示以下错误。跨域是由浏览器的同源策略造成的(下面解释同源策略)。2.什么是同源策略?       同源策略是浏览器的一种安

2017-04-19 22:28:45 381

原创 二进制中1的个数(java)——位运算

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:看到二进制字眼,一般都是考察的位运算。思路一:将n和1与(&)运算,然后再右移;其中,如果运算结果是1则表明n的最后一位是1,count+1;否则就是最后一位是0,count不变.缺陷:这种没有考虑到n是负数的时候。在计算机中负数存储成补码,右移的时候补位是1而不是0,所以1会一直存在,这样会造成一直循环,导致

2017-04-14 10:51:44 1589

原创 斐波那契数列的实现(java)

public int Fibonacci(int n) { int result=1; if(n==0){ result=0; } if(n==1){ result=1; }else if(n>=2 && n<=39){ result=Fibonacci(n-

2017-04-13 13:19:58 509

原创 旋转数组的最小数(java)

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:用最笨的方法,用一层循环一个一个比较找到最小值,时间复杂度是o(n)。比较好的思路,使用

2017-04-12 22:10:19 406

原创 两个栈实现队列与两个队列实现栈(java)

两个栈实现队列的pop和pushimport java.util.*;/** * 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 * 思路:入队列,直接用堆栈入就行 * 出队列,当栈2位空的时候,把栈1所有的数据全部pop到栈2;栈2不为空的时候,直接将剩余的pop出去。 * */public class stackqueue {

2017-04-10 23:09:21 237

原创 ECMAScript6学习笔记——generator函数

1.基本概念Generator 函数Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是“产出”)。function* helloWorldGene

2017-04-10 12:06:54 623

原创 JSON与XML

什么是 JSON ?JSON 指的是 JavaScript 对象表示法(JavaScriptObject Notation)JSON 是轻量级的文本数据交换格式JSON 独立于语言 *JSON 具有自我描述性,更易理解* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言

2017-04-09 22:17:56 242

原创 h5新标签

article: 标签定义外部的内容。 aside:标签定义 article 以外的内容。aaudio:h5新增音频标签。没有高宽属性。 canvas:h5新增画布标签。 command: 定义命令按钮(未测试) datalist:标签定义选项列表。 datalist 及其选项不会被想显示出来,它仅仅是合法的输入值列表。details

2017-04-07 14:50:47 361

转载 前端性能-监控起步

前端性能1.关键点  分页面、区域、浏览器、性能指标  页面的性能指标详解:  白屏时间(first Paint Time)——用户从打开页面开始到页面开始有东西呈现为止  首屏时间——用户浏览器首屏内所有内容都呈现出来所花费的时间  用户可操作时间(dom Interactive)——用户可以进行正常的点击、输入等操作,默认可以统计domready时间,因为通常会在这时候

2017-04-07 14:35:21 1384

原创 腾讯分享会-构建工具知识记录

打包构建Code SplittingDead Code Elimination静态类型系统(构建复杂系统时)适合用webpack构建工具,适合大型项目 glup也是构建工具module,Chunk,定位哪些方法提高构建速度?1.将大型库外链2.将库预先编译3.减少构建搜索或编译路径4.缓存5.并行(happypack)。哪些方法提

2017-04-07 14:24:28 221

原创 看腾讯分享会h5直播知识记录

GOP由I帧,B/P帧组成。flsh1:移动端兼容性差。2:可以播放直播视频。3:学习flash开发语言,有一定成本。video1:移动端兼容好。2:可以播放视频,延迟高。3:提供给予js的api,前端开发更容易。RTMP协议RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器

2017-04-05 22:13:32 689

原创 ECMAScript6学习笔记——promise对象

1.什么是Promise对象?有什么用处?所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。2.Promise对象的两个特点对象的状态不受外界影响。Promis

2017-04-05 14:53:29 691

转载 ECMAScript6知识扫盲

点击打开链接,转自小胡子哥的博客1. let、const 和 block 作用域let 允许创建块级作用域,ES6 推荐在函数中使用 let 定义变量,而非 var:var a = 2;{ let a = 3; console.log(a); // 3}console.log(a); // 2运行代码同样在块级作用域有效的另一个变量声明方式是 co

2017-04-03 22:56:26 709

原创 ECMAScript6学习笔记——块级作用域

ES5没有块级作用域的弊端:ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。例如:var s = 'hello';for (var i = 0; i < s.length; i++) { console.log(s[i]);}console.log(i); // 5上面代码中,变量i只用来控制循环,但是循环结束后,它并没有消失,泄露成了全局

2017-04-03 22:20:03 599

原创 ECMAScript6学习笔记——let和const命令

let命令       let命令,用来声明变量所声明的变量,只在let命令所在的代码块内有效。不存在变量提升,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。暂时性死区          ES6 规定暂时性死区和let、const语句不出现变量提升,主要是为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为。暂时性死区的本质就是,只

2017-04-03 22:05:00 607

原创 2017腾讯实习生招聘笔试编程题

查找数组中的个数,要求复杂度越小越好。例如输入:数组[1,2,2,3]输出:1(1)            2(2)            3(1)解题思路:复杂度越小越好的话,想到用map来存储数值和个数的映射关系,这样就不用二重循环,用一层就可以了,复杂度是O(n)。其中遇到的错误是要从控制台输入数组1,2,2,3,这些以,隔开存到String类型的数组,然后再

2017-04-03 13:34:22 725

原创 html元素分类

1.常见的块级元素(自动换行, 可设置高宽 )有:        div,h1-h6,p,pre,ul,ol,li,form,table,hr,address,blockquote,dl,dt,dd等2。常见的行内元素(无法自动换行,无法设置宽高)有:        a,span,i(斜体),em(强调),sub(下标),sup(上标),br,q,label等。 3.常见的行块

2017-04-02 16:58:05 297

转载 详解js中的apply与call的用法

转自这里………………前言call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向。call 和 apply二者的作用完全一样,只是接受参数的方式不太一样。方法定义applyFunction.apply(obj,args)方法能接收两个参数:obj:这个对象将代替Function类

2017-04-02 16:39:03 660

原创 css3学习笔记

1.为什么分许多模块进行管理? 为了避免产生浏览器对于某个模块支持不完全的情况。2.使用元素的class属性的缺点:  第一,class属性本身没有语义,褚翠是用来为css样式服务的,属于多余属性。  第二,使用属性的话,并没有把样式与元素绑定起来,针对同一个class属性文本框,下拉框,按钮都可使用。这样很混乱,修改样式也不很方便。3.h2:nth-child

2017-04-02 14:46:30 344

简单的表单验证

纯js的表单验证。本来想免费的,可是这几天没有积分了,所以……大家见谅

2016-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除