自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DecadeScript's Notes

昨天的路已经很远

  • 博客(51)
  • 收藏
  • 关注

翻译 浅谈JavaScript模块:Bundling

模块,依赖管理和动态加载应该是大家对任何现代编程语言一个基本要求。在2015年,这些都是一些新特性被添加到了JavaScript中。在NodeJS中,模块化被广泛使用,但在这里我们的重点将是我们如何在浏览器端模块化编程。我们将探讨一些历史,对现状的分析以及和对当前各种解决方案的比较:Browserify,WebPACK中和JSPM。最后,我们来看看如何使用CoffeeScript, TypeScri

2016-04-17 14:26:20 912

原创 Web相关:Sublime如何安装ESLint插件?

论良好的编码风格的重要性。ESLint为何物?简单的说,它跟jshint类似,都是对JavaScript代码进行语法的检测,但是它提供了更好的扩展性与更丰富的检测机制。Airbnb JavaScript Style Airbnb的编码风格在社区内公认是比较好的。如何安装第一步通过npm安装ESLint和eslint-config-airbnnpm install --save-dev eslint-

2016-04-01 10:42:21 6732

原创 Angularjs:Angularjs使用心得

写在开头从真正接触angularjs到现在,还没有一个月的时间,一直都处于遇坑填坑的状态。之前一直都在耳闻,未有实战的机会,现在项目中使用到了angularjs, 也便体会到双向绑定的好处,要充分利用起来,估计还得一段时间的填坑。看angular的时候,社区里有这么一句话 Do not use angular as jQuery这里并不是说jQuery不好,事实上jQuery极大了提高前端的开

2016-03-26 14:25:52 801

原创 Node:初识Stream

初步认识nodejs中的stream模块。 Stream是什么?为什么需要用Steam?先看下面两幅图,寻找差异。图一: 图二: 两个程序分别请求了同一个文件,输出到页面,非常简单的操作。注意,区别之一就是 waiting(TTFB)。要认识到差异,首先得看看TTFB是什么。 Load time is how long it takes for a webpage to be load

2016-03-03 21:24:19 592

原创 Node:Q与node http模块搭配

最近在做爬虫的时候,在使用http模块发送请求时,希望拿到请求响应的数据后,再对数据进行解析。当然可以用回调函数解决,阅读性差了点,写起来也比较臃肿。可以尝试用q。//导入相关模块var http = require('http'), Q = require('q');//请求参数var options = { hostname: 'yourHost.com', path: '/

2016-02-25 18:38:03 550

原创 Node:找不到全局安装的模块

在window下,通过npm install packagename -g 安装模块,在文件中require的时候,报错未找到该模块。解决办法 1:在文件中加入 module.paths.push('C:/Users/username/AppData/Roaming/npm/node_modules'); 全局安装的模块在该目录下 2:设置NODE_PATH 在环境变量中添加NODE_

2016-01-19 16:13:55 7640

原创 Web:预加载与延时加载

最近做了个某珠宝的微信活动页面。由于每个活动页面都有一张背景图,在移动端网速不佳的时候,每翻一页,都会有较长时间的空白页出现。这种体验当然是不能够接受的。为了避免这种情况,使用图片预加载,当用户进入首页浏览的时候,其实已经把之后几页的背景图已经下载好,在翻页的时候,因为背景图片资源已经加载过一遍,浏览器直接使用缓存就行,并不需要再额外加载一次。预加载这是首次加载的时候,浏览器的请求个数,红框内的资源

2015-12-20 21:29:05 5596 7

翻译 Web:一张图读懂Flux

问题首先, 我来解释下Flux大概解决了什么问题。Flux是一种在app中处理数据的模式。在Facebook,Flux和React和并驱前行。大部分开发者一起使用它们,但是你可以为你自己所用。它们的存在是解决了Facebook当期遇到的问题 这一系列的问题中,最大的Bug莫非新消息通知了。当你登录Facebook了,你发现消息栏有提示了,你很自然的去查看新消息,事实上并没有新消息。这时,提示没

2015-12-12 15:52:46 1240

原创 JavaScript:['1','2','3'].map(parseInt)问题解析

最近碰到了[‘1’,’2’,’3’].map(parseInt)这种看似不起眼陷阱却极大的问题。这乍一看,感觉应该会输出[1,2,3]。但是,实际上并不是我们想的这样。你可以现在打开console,看看输出的结果。出乎意料结果竟然是[1,NaN,NaN].至于为什么是这样,下面一步一步的解释。parseInt()parseInt是JS的一个内置函数,它可以将字符创解析成一个数值表达式并将该数值返回。

2015-12-11 11:18:23 5653

原创 JavaScript:student-information-system-node-express-mongoose 学生信息管理系统

基于Bootstrap+node+express+mongoose的学生信息管理系统仅仅是一个简单的实现完成了两个小功能源码

2015-12-09 17:12:25 736

原创 JavaScript:wihdow.onload与DOMContentLoaded,onreadystate

最开始对window.onload模糊的理解就是,文档全部加载完之后,再执行某个事件或者函数。对整个执行过程的理解也不是很到位。现在来做个梳理。文档加载过程解析HTML加载外部css文件和js文件执行文档内的js代码HTML DOM 全部加载完(不包括外部图片、视频之类的文件)加载图片与外部链接文件页面全部加载完 页面加载过程大致分为以上几个过程,如果把js文件放在底部,加载顺序稍有变动

2015-12-06 21:02:02 1384

原创 MongoDB:为MongoDB shell 添加可修改编辑器

shell的多行支持是非常有限的:不可以编辑之前的行。 为了对之前的行更好的编辑,我们可以自行为shell添加一个编辑器。在用户的主目录下添加一个 .mongorc.js 文件 注意开头的 点 不能忘了 在shell中键入mongo的时候,它会选择用户根目录下有没有这个文件,如果有的话,它就会执行里的代码。我用的编辑器是Sublime text 3 ,安装路径:E:\Program Files\

2015-11-20 22:57:01 1354 1

原创 CSS:用CSS制作下拉菜单

下来菜单在web中应该很常见,实现方法也是各有不同。 这里用css实现。html<ul class="nav"> <li><a href="">Home</a></li> <li><a href="">Products</a> <ul> <li><a href="">One</a></li>

2015-10-26 20:23:00 537

原创 git:git add readme.txt报错 pathspec 'readme.txt' did not match any files

在git bash里直接输入:git add readme.txt报错: pathspec 'readme.txt' did not match any files说明在本地目录里没有这个文件。解决办法 1.手动创建一个文件 2.通过git命令创建git touch readme.txt

2015-10-25 19:49:35 18608 4

原创 git:fatal: Not a git repository (or any of the parent directories): .git

在添加远程库的时候,我输入:$ git remote add origin [email protected]:yourgithubaccount/project.git结果报错了:fatal: Not a git repository (or any of the parent directories): .git当前的目录不是一个git仓库 解决的办法有两种: 1.初始化一个本地仓库 git

2015-10-25 19:40:06 11606

原创 CSS:透明度 opacity与rgba()的区别

在对元素进行透明度的设置时,经常用到的有opacity与background-color:rgba()。那么,它们到底有啥区别呢? 在使用opacity时,处了对背景生效之外,应用它的元素的内容也会继承它。下面,对提示框进行一个透明度的设置。首先使用了opacity属性仔细看,是可以通过黑色框内白色的字,看到网页文本里的字的。在使用了background-color:rgba(0,0,0,0.5)

2015-10-22 17:23:53 6145

原创 CSS:相对定位与绝对定位

概念 相对定位:如果对一个元素进行相对定位,它将出现在它本应该出现的地方,也就是属于文档流。对它设置水平或垂直移动时,使这个元素“相对于”它的起点移动。 绝对定位:绝对定位的元素不在文档流中。绝对定位的元素的位置是相对于距离它已定位的祖先元素确定的,如果元素没有已定位的祖先元素,那么它的位置是相对于初始包含块的。根据用户代理的不同,初始包含块可能是画布,可能是HTML元素。效果<!--ht

2015-10-22 12:37:53 461

原创 JavaScript:forEach与every的区别

共同点都可以遍历数组回调函数中的参数基本一致不同点every() 调用every()并不能改变数组的值,只能检测数组中的每个值是否满足给定的条件。当遍历到某一个值不满足条件时,函数立即返回false,不再继续遍历。当数组中的每一个值都满足给定的条件时,函数返回true。forEach() 从头到尾的遍历数组,可以改变数组的值。function isBigEnough(elemen

2015-09-18 11:33:18 4342

原创 JavaScript:call,apply,bind的用法

var jane = { name: 'Jane', sayHelloTo: function (otherName) { 'use strict'; console.log(this.name+' says hello to '+otherName); }};Function.prototype.call(thisValue, arg1?,

2015-09-17 14:20:57 903

原创 JavaScript:delete的用法

从字面上就可以知道,delete的基本功能就删除了,说仔细点,就是可以让一个属性从一个对象中完全消失。Delete 属性> var obj = { hello: 'world' };> delete obj.hellotrue> obj.helloundefined如果你把一个属性设为undefined,这个属性是仍然存在于改对象中的,该对象仍然包含它的key值。> var obj = {

2015-09-17 11:18:19 2537

原创 JavaScript:propetry 与 attribute 的区别

property和attribute翻译成中文都有属性,特性的意思,以至于在刚接触的时候,并没有真正把它们分开。现在做个梳理。**1.什么是property?** JS DOM对象拥有properties。这些properties有点像特殊元素的实例变量。比如,一个property可以是不同的类型(boolean,string,etc..)。 可以通过jQuery的prop方法获得propert

2015-09-16 21:19:04 723

原创 JavaScript嵌套函数this的重定向

在嵌套函数里,this的指向已经不是那么的明朗了。 看下面一段代码。var obj = { name: 'Jane', friends: [ 'Tarzan', 'Cheeta' ], loop: function () { 'use strict'; this.friends.forEach( function (f

2015-09-14 21:03:48 1823

原创 jQuery:事件发生的顺序

In a nutshell With all the variations to consider when applying effects, it can become difficult to remember whether the effects will occur simultaneously or sequentially. A brief outline might he

2015-05-15 11:33:45 550

原创 JQuery:选择器

<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <script type="text/javascript" src="js/jquery.js"></script> <style type="text/css"> /*example1*/ body {

2015-05-13 10:51:19 501

原创 JavaScript:全选 与 全不选

var check = function(){ var input = document.getElementsByTagName('input'); for(var i=0;i<input.length;i++){ input[i].checked = document.getElementById("all").chec

2015-04-28 15:01:59 421

原创 JavaScript:函数相关

return 语句 函数可以有return语句,也可以没有return语句。return语句能够使函数停止运行,并且把表达式的值(如果存在这样的表达式)返回给函数调用者。如果return语句没有一个相关的表达式,它会返回undefined值。如果函数不包含return语句,它就执行函数体中的每条语句,然后返回给调用者undefined。可变长度的参数列表:Arguments对象在函数体内,标识符a

2015-04-27 22:43:12 394

原创 JavaScript:Scope &Closure 变量作用域和闭包

Scopevar foo = function(){ var a = 3,b=5; var bar = function(){ var b = 7,c=11; //此时 a=3,b=7,c=11 a += b+c; //此时a=21,b=5,c=11 } //此时a=3,b=5,c未定义 bar(

2015-04-25 01:54:59 568

原创 JavaScript:数组中的一些方法

1.jion()方法 方法Array.join()可以把一个数组的所有元素都转换成字符串,然后再把它们链接起来。可以指定一个可选的字符串来分隔字符串中的元素。如果没有指定的分隔字符串,就使用逗号分隔元素。var a = [1,2,3];var s = a.join(); //"1,2,3"a instanceof Array //true//指定一个分隔符var t = a.join(

2015-04-25 01:20:45 459

原创 JavaScript:数字与字符串的相互转换

将数字转换为字符串 有三种方法:A.给该字符串添加一个空格var a = 1+" ";alert(typeof a); //stringB. 使用String方法var a = 1;var b = String(a);alert(typeof a); //numberalert(typeof a); //stringC. 使用toString()方法var a = 1;var b =

2015-04-24 17:51:05 5853

原创 JavaScript:to write a function which increments a string, to create a new string

Your job is to write a function which increments a string, to create a new string. If the string already ends with a number, the number should be incremented by 1. If the string does not end with a num

2015-04-23 14:55:42 684

原创 数据结构:打印简单的链表

打印简单的链表#include<stdio.h>#include<stdlib.h>struct node;typedef struct node *PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;struct node{ int element; struct node * Next;};List

2015-04-21 11:05:14 771

原创 数据结构:数制转换

十进制数 N 和其他 d 进制数 转换原理: N= (N div d ) x d + N mod d(div为整除运算 mod为求余运算)对于输入的任意的一个非负十进制整数,打印输出与其值的八进制数。由于上诉计算过程是从低到高位顺序产生八进制的各个数位,而打印输出,一般来说应从高位到低位进行,恰好和计算过程相反。因此,若将计算过程得到的八进制数的各位顺序进栈,则按出栈序列打印输出的即为与输入对应的

2015-04-20 09:27:33 3334

原创 JavaScript: 函数声明与函数表达式

var functionOne =function(){ //code....} function functionTwo(){ //code....}在JS中, 这两个不同方式来定义function时,有个区别在于functionOne定义于run-time时期,functionTwo定义于parse-time。 也就是说<script>//报错functionOne

2015-04-17 17:03:10 528

原创 队列

链队列 用链表表示的队列简称为链队列。 空链队列的判决条件为头指针和尾指针均指向头结点。//链队列 typedef struct QNode{ ElementType data; struct QNode *next; }QNode, *QueuePtr; typedef struct { QueuePtr front;

2015-04-15 09:58:30 374

原创 数据结构:中缀表达式如何转换为后缀表达式

从头到尾读取中缀表达式的每个对象,对不同对象按不同的情况处理。 ① 运算数:直接输出; ② 左括号:压入堆栈; ③ 右括号:将栈顶的运算符弹出并输出,直到遇到左括号(出栈,不输出); ④ 运算符: (遇到运算符不是第一时间输出 先与后面的运算符进行比较) • 若优先级大于栈顶运算符(这里的栈顶运算符是指当前处于栈顶的运算符)时,则把它压栈; • 若优先级小于等于栈顶运算符时,将栈

2015-04-13 14:30:58 567

原创 数据结构:堆栈的链式存储实现

栈的链式存储实际是一个单链表,叫做栈链。插入和删除应该都只在栈链的栈顶进行。#include<stdio.h> typedef struct Node{ ElementType Data; struct Node *Next; } LinkStack ; LinkStack *CreateStack(){ LinkStack

2015-04-13 14:14:42 578

原创 数据结构:请用一个数组实现两个堆栈,要求最大地利用数组空间,使 数组只要有空间入栈操作就可以成功

题目:请用一个数组实现两个堆栈,要求最大地利用数组空间,使 数组只要有空间入栈操作就可以成功【分析】 一种比较聪明的方法是使这两个栈分别从数组的两头开始 向中间生长;当两个栈的栈顶指针相遇时,表示两个栈都满了。#include<stdio.h>#define MAXSIZE 100; typedef struct DStack{ ElementType Data(MAXSI

2015-04-13 13:36:52 1955 1

原创 数据结构:线性表

#include<stdio.h>typedef struct{ ElementType Data[MAXSIZE]; int Last; } List;void main{ //1 初始化 建立空的顺序表 List *MakeEmpty(){ List *PtrL; PtrL = (List *)malloc

2015-04-10 16:33:25 396

原创 C语言:建立动态链表

先贴代码,再做分析:#include<stdio.h>typedef struct Student{ long num; float score; struct Student *next;} Student;int n;Student * create(){ Student *head,*p1,*p2; n = 0 ; //开辟新结点 同时使p

2015-04-10 10:28:34 9608 4

原创 C语言:malloc 与 calloc的区别

用malloc和calloc分别实现同一个功能。 如下:#include<stdio.h>#include<stdlib.h>void main(){void check(int *);int *p1,i;p1 = (int *)calloc(5 ,4); //注意这里for(i=0;i<5;i++){ scanf("%d",p1+i);}check(p1);return

2015-04-09 10:35:21 997

空空如也

空空如也

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

TA关注的人

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