koa是一个基于node实现的一个新的web框架,从头实现一个koa框架,它是由express框架的原班人马打造的.它的特点是优雅.简洁.表达力强.自由度高.它更express相比,它是一个更轻量的node框架,因为它所有功能都通过插件实现,这种插拔式的架构设计模式,很符合unix哲学. koa框架现在更新到了2.x版本,本文从零开始,循序渐进,讲解koa2的框架源码结构和实现原理,展示和详解koa2框架源码中的几个最重要的概念,然后手把手教大家亲自实现一个简易的koa2框架,帮助大家学习和更深…
); , () => {     ); 实现koa的第一步就是对以上的这个过程进行封装,为此我们需要创建application.js实现一个Application类的构造函数: ); , () => { ); ); ); ); ); ); , () => { ; i >= 0; i--) { ; i >= 0; i--) { ; i >= 0; i--) {        let currentMiddleware = this.middlewares[i];    …
js在chrome中加载XML,js加载XML支持ff,IE6+,Opera等浏览器 见代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js里各浏览器解析XML,支持IE.火狐.Chrome等</title> </head> <body> <script> fu…
1.JS外部文件中U函数不会被解析,内部JS代码可以被解析. 2.halt. _404可以定制错误模板,在配置文件中配置 TMPL_EXCEPTION_FILE =>'./Public/Tpl/error.html' 3.在错误页面error.html中,只能使用原始的php标签,不能使用ThinkPHP的模板标签. 4.错误信息都存放在一个$e的数组变量里,如$e['message'],存放的是错误消息.…
vue.js响应式原理解析与实现 从很久之前就已经接触过了angularjs了,当时就已经了解到,angularjs是通过脏检查来实现数据监测以及页面更新渲染.之后,再接触了vue.js,当时也一度很好奇vue.js是如何监测数据更新并且重新渲染页面.今天,就我们就来一步步解析vue.js响应式的原理,并且来实现一个简单的demo. 首先,先让我们来了解一些基础知识. 基础知识 Object.defineProperty es5新增了Object.defineProperty这个api,它可以允…
原文地址:JS中生成和解析JSON 1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name = "jyy"; 或者var row2 = {id:'2',name:'abc'} json.push(row1); json.push(row2); 2.JS中将JSON对象解析为字符串的方法: var jsonStr = JSON.stringify(json); 3.JS解析JSON…
1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name = "jyy"; 或者var row2 = {id:'2',name:'abc'} json.push(row1); json.push(row2); 2.JS中将JSON对象解析为字符串的方法: var jsonStr = JSON.stringify(json); 3.JS解析JSON对象或者字符串的方法: var ob…
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/7822962.html 解析XML文件遇到的问题 今天秦博士叫我解析一下XML文件,将里面的所有的X坐标Y坐标放在一个数组里面然后写在文档里让他进行算法比对,大家都知道了啦,解析XML文件获取里面的坐标数据什么的,当然是用前端的JS,JQ之类的来解析比较方便啦.不过我事先都没有做过这些东西,所以只好去百度上面搜索别人的代码来借鉴一下了. 那么问题就来了,先看这个代码,这个就是通用的创建一个xm…
js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数) 一.总结 1.JSON解析:JSON.parse(myJSONtext); 2.JSON序列化:JSON.stringify(myObject); 3.一般函数的功能都很全,很多我们不常用的功能都有,可选参数,需要特殊功能的时候去查完整的函数 二.js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串) JSON 的解析和序…
文章目錄 解析机制 JavaScript是一门解释型的语言 , 想要运行js代码需要两个阶段 编译阶段: 编译阶段就是我们常说的JavaScript预解析(预处理)阶段,在这个阶段JavaScript解释器将完成把JavaScript脚本代码转换到字节码 执行阶段: 在编译阶段JavaScript解释器借助执行环境把字节码生成机械码,并从上到下按顺序执行 预解析时做什么 var , function声明的变量提升 首先,创建一个当前执行环境下的活动对象,然后将用 var 声明的变量设置为活动对象…
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57c7ff1689a6c9121b1adb16 作者:苏晏烨 关于WebVR 最近VR的发展十分吸引人们的眼球,很多同学应该也心痒痒的想体验VR设备,然而现在的专业硬件价格还比较高,入手一个估计就要吃土了.但是,对于我们前端开发者来说,我们不仅可以简单地在手机上进行视觉上的VR体验,还可以立马上手进行Web端VR应用的开发! WebVR是一个实验性的Javascript API…
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐进增强)优雅的处理能力以及 Ajax 等方面周到而强大的定制功能无不令人惊叹. 另外,阅读源码让我接触到了大量底层的知识.对原生JS .框架设计.代码优化有了全新的认识,接下来将会写一系列关于 jQuery 解析的文章. 我在 github 上关于 jQuery 源码的全文注解,感兴趣的可以围观一下…
首先理解一下下面的表达式:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0))); 这个是css的行为--expression,目的系快捷在css里…
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的.而cookie是运行在客户端的,所以可以用JS来设置cookie. 在这里分别通过js和jquery两种方式说明对cookie的具体使用: 一.cookie在jquery中的使用: 1.引入相对应的插件: <script type="text/javascript" src="../js/jquery.min.js"></scrip…
// 作用域: // 域:空间.范围.区域…… // 作用:读.写 script 全局变量.全局函数 自上而下 函数 由里到外 {} 浏览器: “JS解析器” 1)“找一些东西” :var function 参数 a = ... 所有的变量,在正式运行代码之前,都提前赋了一个值:未定义 fn1 = function fn1(){ alert(2); } 所有的函数,在正式运行代码之前,都是整个函数块 JS 的预解析 遇到重名的:只留一个 变量和函数重名了,就只留下函数 2)逐行解读代码: 表达式…
在编程中总是会遇见很多动态生成的东西,一般我们都是通过简单的html拼接起来的 function createHtml(name, phone, addr, email, imageSrc){ var html = ''; html += '<div class=personInfo>' html += '<p>Name: ' + name + '</p>'; html += '<p>Phone: ' + phone + '</p>'; html…
作用域链   函数每次执行时,浏览器都会在函数中开启一个地方用来存储函数内的局部数据.(声明在函数内的局部变量),这个地方就叫做作用域([scopes])   作用域链 变量与函数的查找规则:当我们在函数使用一条数据时,优先在本作用域(调用数据的函数内),去查找这条数据,如果在本作用域,,找不到这条数据,就去查找父级的作用域,直到找到全局作用域,如果在全局作用域下也找不到,就报错.   全局作用域 --- 在任何地方都能访问 函数外定义的变量拥有全局作用域 不使用var定义的变量拥有全局作用域…
Buffer 类的实例类似于整数数组,但 Buffer 的大小是固定的.且在 V8 堆外分配物理内存.Buffer 的大小在被创建时确定,且无法调整. Buffer 类在 Node.js 中是一个全局变量,因此无需使用 require('buffer').Buffer. // 创建一个长度为 10.且用 0 填充的 Buffer. const buf1 = Buffer.alloc(10);//const(常量)//.alloc(分配/申请内存) // 创建一个长度为 10.且用 0x1 填充的…
上一节我们已经分析了vue.js是通过Object.defineProperty以及发布订阅模式来进行数据劫持和监听,并且实现了一个简单的demo.今天,我们就基于上一节的代码,来实现一个MVVM类,将其与html结合在一起,并且实现v-model以及{{}}语法. tips:本节新增代码(去除注释)在一百行左右.使用的Observer和Watcher都是延用上一节的代码,没有修改. 接下来,让我们一步步来,实现一个MVVM类. 构造函数 首先,一个MVVM的构造函数如下(和vue.js的构造函…
1.首先要了解页面的结构(包含哪些元素?哪些计算机语言能够在页面中运行 ) (1)html          不仅可以包含文字,还可以包含图片.链接,甚至音乐.程序等非文字元素的标记语言          (展示给用户,不能太单调,css) (2)css          是一种用来表现HTML的计算机语言,能使HTML页面变得更加美观          (要展示给用户光漂亮是不够的,用户还要能够动态的操作HTML页面,也就是让浏览器和用户之间的交互不仅仅是用户能浏览html中的内容,还要能对h…
本教程使用AngularJS版本:1.5.3        angularjs GitHub: https://github.com/angular/angular.js/        AngularJs下载地址:https://angularjs.org/ 用有过spring的人都知道,Spring的核心思想就是DI(依赖注入,Dependency Injection)和IOC(控制反转 Invension of Controller),AngularJS的service其实就是用到了这里的…
异步更新原理:用XMLHTTP发送请求得到服务器端应答数据,在不重新载入整个页面的情况下,用js操作Dom最终更新页面1.创建XMLHttp请求协议 function createXMLHttpRequest(){ var xmlHttp; if(window.ActiveXObject) { //IE浏览器 //IE浏览器(将XMLHttpRequest对象作为ActiveX对象来创建) try{ xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"…
摘要:主要介绍:使用eval函数解析JSON数据:$.getJSON()方法获得服务器返回的JSON数据 JavaScript eval() 函数 eval(string) 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 参数string:要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. 该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回.因此请不要为 eval() 函数传递 String 对象…
js预解析对于很多学习web前端开发的新手们很困扰,总是很难搞懂到底是个什么东西,今天零度就为大家简单的分析一下,争取让大家都明白! 首先,看一下下面的代码: alert(a); var a = 1; 这段代码大家认为运行时会弹出什么?相信很多人会回答”1“,其实弹出的是undefined! 为什么呢?我们来分析一下:首先这段js代码是一个alert,我们知道alert是一个弹出函数,弹出后面括号里面的东西,这里面我们给了一个变量a,那么这个变量a的值是多少呢?这时,js解析器并不知道,所以它会…
网上有很多网站会通过.md文档来做页面内容(比如,阮一峰老师的es6入门blog: http://es6.ruanyifeng.com/),很好奇,这是怎么做的?(至于.md是什么,或许(https://www.runoob.com/markdown/md-tutorial.html)这里会有答案) 出于好奇,建了一个test.md文件: # Hello World! asdfa asd *斜体文本* **粗体文本** ***斜粗体文本*** 分隔线(如下) *** * * * **** - -…
1.JS作用域:变量和函数作用的范围. 2.JS解析器可以分为域解析和逐行解读代码两个过程. 域解析:1.当进行域解析的时候,一旦找到var,就会提取后面的变量名,并给它赋值给undefined. 2.一旦找到function和形参,把整个函数块赋值给函数名,把形参赋值为undefined 逐行解读代码: 解读表达式,解读函数调用部分. 3.JS解读代码规则: 作用域链中变量只能向上访问,不能向上访问.变量先在自己的作用域中找,找不到再向父级作用域中找. 局部变量不会影响全局变量. 隐式声明的变…
今天,继续深入学习react.js. 目录: 一.JSX介绍 二.React组件生命周期详解 三.属性.状态的含义和用法 四.React中事件的用法 五.组件的协同使用 六.React中的双向绑定  一.JSX介绍 ①定义 JSX=JavaScript XML,是一种在React组件内部构建标签的类XML语法.React在不使用JSX的情况下一样可以工作,但是使用JSX可以提高组件的可读性,增强JS语义,结构清晰,抽象程度高,代码模块化.因此推荐在React中使用JSX. ②特点 1.元素名首字…
转自:http://blog.csdn.net/lulei9876/article/details/8494337 自学jQuery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函数了.不懂啊,于是在google回调函数,发现网上的中文解释实在是太"深奥"了,我承认自己才疏学浅了.看了几个回调的例子后,貌似有点理解了.下面是我对回调函数的理解,要是理解错了,请指正,不甚感激. 首先还是从jquery网站上的英文定义入…
1.最基本的作为一个本本分分的函数声明使用. 复制代码代码如下: function func(){} 或 var func=function(){};  2.作为一个类构造器使用: 复制代码代码如下: function class(){} class.prototype={}; var item=new class();  3.作为闭包使用: 复制代码代码如下: (function(){ //独立作用域 })();  4.可以作为选择器使用: 复制代码代码如下: var addEvent=new…
本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了. 原文链接 日期格式化 使用说明 formatDate(date, fmt),其中fmt支持的格式有: y(年) M(月) d(日) q(季度) w(星期) H(24小时制的小时) h(12小时制的小时) m(分钟) s(秒) S(毫秒) 另外,字符的个数决定输出字符的长度,如,yy输出16,yyyy输出2016,ww输出周五,www输出星期五,等等. 代码 完整代码一共…