Fork me on GitHub
摘要: Web前端技术由 html、css 和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,阅读全文
posted @ 2017-06-16 01:13 一像素 阅读(10498) 评论(16) 编辑
摘要: 在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了。 正则表达式零宽断言: 零宽断言是正则表达式中的难点,所以本章节重点从匹配原理方面进行一下分析。零宽断言还有其他的名称,例如"环视"或者"预搜索"等等,不过这些都不是我们关注的重点。 一阅读全文
posted @ 2017-10-23 17:07 一像素 阅读(30) 评论(0)  编辑
摘要: 0、排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数阅读全文
posted @ 2017-10-15 23:43 一像素 阅读(75) 评论(0)  编辑
摘要: node.js 中的非 IO 的异步 API 提供了四种方法,分别为 setTimeOut(), setInterval(), setImmediate() 以及 process.nextTick(),四种方法实现原理相似,但达到的效果略有区别: 1、事件循环 Event Loop 首先,我们需要了阅读全文
posted @ 2017-09-28 10:24 一像素 阅读(58) 评论(0)  编辑
摘要: 1、从 http 协议说起 1996年IETF HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展。这种分布式、无状态、基于TCP的请求/响应式、在互联网盛行的今天得到广泛应用的协议,相对于互联网的迅猛发展,它似乎进步地很慢。互联网从兴起到现阅读全文
posted @ 2017-09-26 11:50 一像素 阅读(40) 评论(0)  编辑
摘要: 说到跨域,就不得不提起浏览器的同源策略。 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。 源 如果协议,端口(如果指定了一个)和主机对于两个页面是相同的,那么这两个页面就具有相同的源。 从这个定义可以看出,如果两个页面的协议,端口,主机三个只要有一个不一样,就是不同的源,想要阅读全文
posted @ 2017-09-21 15:32 一像素 阅读(27) 评论(0)  编辑
摘要: CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 本文详细介绍CORS的内部机制。 一、简介 CORS需要浏览器和服务器同时支持。目阅读全文
posted @ 2017-09-21 12:38 一像素 阅读(77) 评论(0)  编辑
摘要: 受浏览器同源策略的限制,本域的js不能操作其他域的页面对象(比如DOM)。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。所以我们要通过一些方法使本域的js能够操作其他域的页面对象或者使其他域的js能操作本域的页面对象(iframe之间)。这里需要明确的一点是:所谓的域跟js阅读全文
posted @ 2017-09-21 12:33 一像素 阅读(38) 评论(0)  编辑
摘要: 本文翻译自微软官网的一篇文章,名称是 XDomainRequest – Restrictions, Limitations and Workarounds 本文原作者是EricLaw,前微软正式员工。2004到2012年在微软担任IE程序经理(Program Manager)。 译文如下: 更新:I阅读全文
posted @ 2017-09-21 12:18 一像素 阅读(13) 评论(0)  编辑
摘要: V8 的垃圾回收策略主要基于分代式垃圾回收机制。所谓分代式,就是将内存空间分为新生代和老生代两种,然后采用不同的回收算法进行回收。 1、新生代空间 新生代空间中的对象为存活时间较短的对象,大多数的对象被分配在这里,这个区域很小但是垃圾回特别频繁 。 它将堆内存一分为二,每一部分空间称为 semisp阅读全文
posted @ 2017-08-24 18:52 一像素 阅读(439) 评论(0) 编辑
摘要: 什么是TTL? TTL 是 IP 协议包中的一个值,指定数据报被路由器丢弃之前允许通过的网段数量。在很多情况下数据包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终阅读全文
posted @ 2017-08-23 23:04 一像素 阅读(18) 评论(0)  编辑
摘要: 1、Unicode 的由来 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如阅读全文
posted @ 2017-08-23 22:55 一像素 阅读(18) 评论(0)  编辑
摘要: 1、核心架构 CPU 的根本任务就是执行指令,对计算机来说最终都是一串由 0 和 1 组成的序列。CPU 从逻辑上可以划分成 3 个模块,分别是控制单元、运算单元和存储单元 。其核心架构如下: 【1】控制单元 控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Regist阅读全文
posted @ 2017-08-23 14:08 一像素 阅读(43) 评论(0)  编辑
摘要: 最近在看《JavaScript高级程序设计》一书,书中讲到相等操作符(==)时说,要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,但要记住 null == undefined 会返回 true 。的确,在ECMAScript规范中也是这样定义的,但我认为这样来理解这件事阅读全文
posted @ 2017-08-10 08:17 一像素 阅读(741) 评论(5) 编辑
摘要: Node.js 采用事件驱动和异步 I/O 的方式,实现了一个单线程、高并发的 JavaScript 运行时环境,而单线程就意味着同一时间只能做一件事,那么 Node.js 如何通过单线程来实现高并发和异步 I/O?本文将围绕这个问题来探讨 Node.js 的单线程模型 。 1、高并发策略 一般来说阅读全文
posted @ 2017-07-10 01:48 一像素 阅读(2567) 评论(15) 编辑
摘要: TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不阅读全文
posted @ 2017-06-29 00:17 一像素 阅读(1546) 评论(4) 编辑
摘要: 在Web应用中,实现动画效果的方法比较多,JavaScript 中可以通过定时器 setTimeout 来实现,css3 可以使用 transition 和 animation 来实现,html5 中的 canvas 也可以实现。除此之外,html5 还提供一个专门用于请求动画的 API,即 req阅读全文
posted @ 2017-06-26 00:26 一像素 阅读(638) 评论(1) 编辑
摘要: Web前端技术由 html、css 和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,阅读全文
posted @ 2017-06-16 01:13 一像素 阅读(10498) 评论(16) 编辑
摘要: MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。阅读全文
posted @ 2016-11-06 22:42 一像素 阅读(20222) 评论(41) 编辑
摘要: 使用Node.js搭建Web服务器是学习Node.js比较全面的入门教程,因为实现Web服务器需要用到几个比较重要的模块:http模块、文件系统、url解析模块、路径解析模块、以及301重定向技术等,下面我们就一起来学习如何搭建一个简单的Web服务器。 作为一个Web服务器应具备以下几个功能: 1、阅读全文
posted @ 2016-03-28 01:35 一像素 阅读(22031) 评论(14) 编辑
摘要: H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路。 1、实现原理 假设有5个页面,每个页面占屏幕100%宽,则创建一个DIV容器viewport,将其宽度(widt阅读全文
posted @ 2016-03-21 02:02 一像素 阅读(10315) 评论(14) 编辑
摘要: 1、NaN NaN 即 Not a Number , 不是一个数字。那么 NaN 到底是什么呢? 在 JavaScript 中,整数和浮点数都统称为 Number 类型 。除此之外,Number 类型还有一个很特殊的值,即 NaN 。它是 Number 对象上的一个静态属性,可以通过 Number.阅读全文
posted @ 2016-03-16 00:27 一像素 阅读(8543) 评论(3) 编辑
摘要: React 起源于Facebook内部项目,是一个用来构建用户界面的javascript库,相当于MVC架构中的V层框架,与市面上其他框架不同的是,React 把每一个组件当成了一个状态机,组件内部通过state来维护组件状态的变化,当组件的状态发生变化时,React通过虚拟DOM技术来增量并且高效的更新真实DOM。本文将对React的这些特点进行简单的介绍。阅读全文
posted @ 2016-03-06 21:58 一像素 阅读(8600) 评论(7) 编辑
摘要: 1、正则表达式概述 ECMAScript 3 开始支持正则表达式,其语法和 Perl 语法很类似,一个完整的正则表达式结构如下: 其中,模式(pattern)部分可以是任何简单或复杂的正则表达式,可以包含字符类、限定符、分组、向前查找以及反向引用。 每个正则表达式都可带有一或多个标志(flags),阅读全文
posted @ 2016-02-26 15:00 一像素 阅读(6860) 评论(1) 编辑
摘要: 在Web App和Hybrid App横行的时代,为了拥有更好的用户体验,单页面应用顺势而生,单页面应用简称`SPA`,即Single Page Application,就是只有一个HTML页面的应用程序,应用中所有的视图都包含在这个HTML页面中,并通过JavaScript控制相关视图的显示和隐藏,这种模式可以让用户在Web App感受Native App的速度和流畅。本篇文章的目的就是教你如何来快速的构建一个单页面应用程序。阅读全文
posted @ 2016-01-26 01:36 一像素 阅读(4842) 评论(5) 编辑
摘要: 在JavaScript中,call 和 apply 是Function对象自带的两个方法,这两个方法的主要作用是改变函数中的this指向,从而可以达到`接花移木`的效果。本文将对这两个方法进行详细的讲解,并列出几个关于call和apply的经典应用场景。阅读全文
posted @ 2016-01-20 00:17 一像素 阅读(3078) 评论(7) 编辑
摘要: 在 JavaScript 中,对数值进行四舍五入操作的场景有以下几种: 向上取整:ceil 向下取整:floor 四舍五入:round 固定精度:toFixed 固定长度:toPrecision 取整:parseInt(位操作符) 本文将对这 6 个 API 进行简单的讲解和总结。 1、向上取整: 阅读全文
posted @ 2016-01-19 11:07 一像素 阅读(665) 评论(0) 编辑
摘要: 在 ECMAScript 规范中,共定义了 7 种数据类型,分为 基本类型 和 引用类型 两大类,如下所示: 基本类型:String、Number、Boolean、Symbol、Undefined、Null 引用类型:Object 下面将详细介绍这 7 种数据类型的一些特性。 1、String 类型阅读全文
posted @ 2016-01-19 01:14 一像素 阅读(2666) 评论(9) 编辑
摘要: 在 ECMAScript 规范中,共定义了 7 种数据类型,分为 基本类型 和 引用类型 两大类,如下所示: 基本类型:String、Number、Boolean、Symbol、Undefined、Null 引用类型:Object 基本类型也称为简单类型,由于其占据空间固定,是简单的数据段,为了便于阅读全文
posted @ 2016-01-13 00:18 一像素 阅读(11767) 评论(0) 编辑
摘要: 在 JavaScript 中,对于数组的操作非常频繁,对应的 API 也很丰富 。ECMAScript 规范在每一版发布时,都会提供新的 API 来增强数组的操作能力,下面将详细介绍这些 API 的一些特性。 一、ES5 新增的 9 个API 1、forEach( callback[,thisArg阅读全文
posted @ 2016-01-12 03:02 一像素 阅读(2243) 评论(4) 编辑
摘要: jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javascript中的高级特性来构建如此伟大的javascript库。阅读全文
posted @ 2016-01-04 01:42 一像素 阅读(2935) 评论(7) 编辑
摘要: javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈、全局对象、执行环境、变量对象、活动对象、作用域和作用域链等,这些概念正是JS引擎工作的核心组件。这篇文章的目的不是孤立的为你讲解每一个概念,而是通过一个简单的demo来展开分析,全局讲解JS引擎从定义到执行的每一个细节,以及这些概念在其中所扮演的角色。阅读全文
posted @ 2015-12-31 09:57 一像素 阅读(6346) 评论(11) 编辑
摘要: 闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMAScript 规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文不会对闭包的概念进行大篇幅描述,直接上干货,让你分分钟理解闭包! 1、闭包,一睹为快 在接触一个新技术的时候,我首先阅读全文
posted @ 2015-12-21 09:14 一像素 阅读(21000) 评论(79) 编辑
摘要: 和其他高级语言一样 JavaScript 也有 new 操作符,我们知道 new 可以用来实例化一个类,从而在内存中分配一个实例对象。 但在 JavaScript 中,万物皆对象,为什么还要通过 new 来产生对象? 带着这个问题,我们一步步来分析和理解 new 的一些特性: 1、认识 new 操作阅读全文
posted @ 2015-12-14 09:09 一像素 阅读(15119) 评论(17) 编辑
摘要: 1、作用域 所谓作用域就是:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。 (1)scope函数中定义的foo变量,除过自身可以访问以外,还可以在if语句、while语句和内嵌的匿名函数中访问。 因此,foo的作用域就是scope函数体。 (2)在javascript中,if、阅读全文
posted @ 2015-12-10 16:05 一像素 阅读(4108) 评论(11) 编辑
摘要: 在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象 Object 和 函数对象 Function。 一般而言,通过 new Function 产生的对象是函数对象,其他对象都是普通对象。 举例说明: f1属于函数的声明,最常见的函数定义方式,f2实际上是一个匿名函数阅读全文
posted @ 2015-12-07 01:44 一像素 阅读(16053) 评论(12) 编辑