数组去重的JavaScript实现

2017-03-26
阅读 2 分钟
3.7k
通过将旧数组的值分别赋值给对象的属性,由于对象属性赋值时旧属性会被新的同名属性覆盖,所以保证了数组(属性)的单一性,最后通过for in将这些属性push到新数组中。

浏览器渲染机制与相应优化策略

2017-03-20
阅读 2 分钟
2.4k
我们假设HTTP响应后HTML和CSS、JavaScript文件已经齐备了,此时浏览器会怎么做呢?当前HTTP响应浏览器的普适渲染方式:首先,浏览器会根据HTML文件生成DOM树,载入CSS文件构建CSS Object Model。然后,在DOM树和CSS Object Model上建立渲染树(render tree):渲染树就是渲染时用到的树。渲染树其实就是DOM树和CSS的组合...

Promise初级与进阶---都在这了

2017-03-02
阅读 13 分钟
6.7k
我一直以为我对Promise比较了解,相关的方法已经非常熟悉了,直到我看到这篇文章,里面提出了这样一个问题:Q: 假定 doSomething() 和 doSomethingElse() 均返回 promises,下面的四种 promises 的区别是什么

React组件性能优化:PureRender和Immutable Data

2017-03-01
阅读 3 分钟
4.5k
网页性能最大的限制因素是浏览器重绘(reflow)和重排版(repaint),React的虚拟DOM就是为了尽可能减少浏览器的重绘和重排版,从React的渲染过程看,避免不必要的渲染可以进一步提高性能。

ES6 中Class创建对象与继承实现

2017-03-01
阅读 5 分钟
8.7k
ES6提出了类(Class)的概念,让对象的原型的写法更像面向对象语言写法。 ES6中通过class定义对象,默认具有constructor方法和自定义方法,但是包含在class中的方法不可枚举。

TCM的webpack配置与常用插件

2017-02-26
阅读 8 分钟
3.4k
本文是针对TCM项目所做的WebPack配置文件总结,主要概述了一些常用配置选项和插件使用,对以后的项目有指导意义。TCM的webpack配置文件包括webapck.config.base.js、webapck.config.dev.js、webapck.config.prod.js三个基本文件, webpack.config.base.js是基本配置文件,webpack.config.dev.js是开发配置,webpack.conf...

Git命令行使用汇总

2017-02-24
阅读 10 分钟
2.8k
最近实习中上手了一个简单的TMC项目,实际开发中使用SVN,但是突然有了想对比下Git和SVN的想法,于是就上网看了下教程。GitHub一直在用,但是基本都是clone别人的项目,所以对Git的使用一直没有跟进,所以现在算是亡羊补牢。就实际工作而言,只需要掌握常见的Git提交文件以及管理分支的几个指令,学会怎样进行版本回退等...

今天学习的两个知识点

2017-02-21
阅读 2 分钟
1.5k
在《AJAX学习笔记1:XHR对象介绍》和《AJAX学习笔记2:XHR实现跨域资源共享(CORS)以及和JSONP的对比》《JavaScript跨域方式》中,我对XHR对象实现AJAX给出了较为全面的总结,并且对同源策略以及跨域访问给出了常见的解决方案:使用JSONP和HTTP头部信息实现跨域资源共享。在TCM项目中,后台数据通过线上接口提供,也就...

React事件

2017-02-21
阅读 2 分钟
2.1k
React中的事件包括合成事件和原生事件,React底层对合成事件进行事件委派和手动绑定,原生事件的使用在高程3有具体讲解,难点在于跨浏览器兼容和DOM0/DOM2级事件处理程序的使用方法不同,这可以通过编写工具函数屏蔽浏览器差异,关于原生事件的描述在《Event Handler 事件处理程序 1》和《Event Handler 事件处理程序 2...

SASS学习记录

2017-02-20
阅读 5 分钟
2.3k
很久没有用文章记录自己的学习历程了,主要是因为实在写的不行,相比大牛写的博客,我这只能算是东拼西凑或者说是读书笔记。但是今天还是拾起笔来了,虽然没什么干货,但是对自己而言,总结的过程可以加深对零碎知识的了解,将来自己如果忘记某些知识,可以迅速查找并捡起来;如果以后忘了自己的当初的目标,也能回头看...

为什么facebook主页加载这么快:BigPipe?

2016-11-14
阅读 2 分钟
3.8k
本文是对《BigPipe学习研究》的总结。昨晚刷Quora,看到一个类似的问题,然后今早百度了下,发现了这篇非常细致的额文章,所以精简了下,对理解网页性能优化有很大帮助。

Getting Started with IndexedDB(翻译)

2016-11-12
阅读 5 分钟
1.9k
前言:这是一篇译文(原文),虽然在《高程3》第23章有IDB的更详细介绍,但是有点过时了,这篇文章基本概括了IDB的简单知识点,如果需要更详尽的了解可以参照IDB标准。

调试技术

2016-10-31
阅读 2 分钟
2.2k
调试代码的一般方法就是让浏览器输出调试信息。常见的方式是把调试信息记录到控制台,但是这涉及到浏览器的差异性。最关键的是,在最终发布网页之前,这些调试代码必须都删除。1)对 IE8、 Firefox、 Chrome 和 Safari 来说,则可以通过 console 对象向 JavaScript 控制台中写入消息,这个对象具有下列方法。这些方法适...

localForage:离线存储的改进版本

2016-10-31
阅读 3 分钟
5.8k
localForage是一个改善web-app离线数据存储的JavaScript库,核心在于使用一个和localStorage类似的API,比较简单好记。而且存储的数据类型不只是字符串,可以是数值、对象、布尔值、数组,但是undefined除外。默认情况下,依次优先采用使用IDB、WebSQL、localStorage进行后台存储。使用localForage只需要在页面包含js文...

Web开发工具系列(1)---Firebug中的console API

2016-10-20
阅读 5 分钟
1.7k
我个人一直在使用Firefox浏览器进行开发,并且经常使用Firebug进行一些简单的调试,但是一直限于使用简单的console.log()查看输出,或者查看Ajax运行时的Http请求和Cookie等。为了更好的掌握工具使用技巧,我希望最近腾出时间仔细探究下Firebug的使用。因此,本文将是“Web 开发工具”系列中的第一篇。

错误检测(1)------try-catch语句 From 《高程3》

2016-10-19
阅读 6 分钟
2.3k
目前读到了《高程3》的错误检测部分,现在先挖一个坑,关于错误检测应该写三篇总结:firebug检测错误和输出信息;try-catch错误捕获;常见错误种类。

客户端数据存储 --- web storage From 《高程3》

2016-10-18
阅读 4 分钟
2.5k
本文首先介绍web storage和Cookie的对比,解释web storage的优势;随后指出怎样使用插firebug插件的扩展firestorage-plus查看web storage;然后介绍storage的方法和属性,sessionStorage和localStorage的方法和属性继承自storage;最后介绍sessionStorage和localStorage。

客户端数据存储----Cookie From 《高程3》

2016-10-18
阅读 9 分钟
3.4k
本篇主要介绍Cookie技术的读书总结,但是我认为逻辑上最好会和Web Storage技术放在一起进行对比,因此后续会再总结一篇关于WEB存储的姊妹总结,敬请期待。

AJAX学习笔记2:XHR实现跨域资源共享(CORS)以及和JSONP的对比

2016-10-13
阅读 7 分钟
8.1k
首先对参考文章作者表示感谢,你们的经验总结给我们这些新手提供了太多资源。本文致力于解决AJAX的CORS问题,我在逻辑上进行了梳理:首先,系统的总结了CORS问题的起源---同源策略;其次,介绍JSONP这种仅能支持GET请求的跨域方式和CORS作对比;最后,阐述CORS的XHR解决方式和IE中的XDR解决方式,在此基础上提供了工具函...

JavaScript函数式编程(0):函数基础 arguments、this、apply()、call()

2016-10-10
阅读 2 分钟
2k
函数的实参和形参个数可以不等,之所以会这样,原因是 ECMAScript 中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果实参个数大于形参个数,多余的实参不传递值,但是在arguments中可以访问;如果形参个数大于实参,没有传递值的实参将自动被赋予...

JavaScript函数式编程(1):基本思想

2016-10-10
阅读 5 分钟
1.9k
函数式编程是和传统命令式编程区分的一种编程思想,“在函数式编程语言中,函数是第一类的对象,也就是说,函数 不依赖于任何其他的对象而可以独立存在,而在面向对象的语言中,函数 ( 方法 ) 是依附于对象的,属于对象的一部分。这一点决定了函数在函数式语言中的一些特别的性质,比如作为传出 / 传入参数,作为一个普通...

页面置换算法简单对比----《operating system concepts》《操作系统原理》

2016-10-10
阅读 2 分钟
3.4k
当请求调页程序要调进一个页面,但是该作业分配所得的主内存块已经全部用完,则必须淘汰改作业在贮存中的一个页面。置换算法就是决定选择哪一个页面进行淘汰的规则。如置换算法不够好,就会导致刚淘汰的页面又被需要,因此又被调入,这样就会导致频繁的调入调出,系统仅仅花费在程序执行上的时间比例降低。更差的情况是...

高级定时器---《高程3》

2016-10-07
阅读 3 分钟
2.3k
超时调用:setTimeout(),接受两个参数,第一个参数是可执行的JavaScript代码字符串,或是回调函数,第二个参数是毫秒为单位的插入代码队列的的时间。清除方式:clearTimeout(),参数是设置setTimeout时返回的数值ID。

Event Handler 事件处理程序 2 ---跨浏览器事件对象《高程3》

2016-10-06
阅读 7 分钟
3.3k
支持DOM0、DOM2的浏览器和IE浏览器实现事件处理程序的不同,除了体现在添加事件处理程序的不同上,还体现在event对象的实现差异上,包括具体的属性和方法。在触发DOM上的某个事件时,都会产生一个event对象,这个对象包含着所有与事件有关的信息。一旦事件处理程序执行完成,event对象就会被销毁。所有浏览器对event的支...

Event Handler 事件处理程序 1 ---《高程3》

2016-10-06
阅读 3 分钟
4k
“DOM2级事件”规定的事件流包括三个阶段:事件捕获、处于目标阶段和事件冒泡。首先发生的是事件捕获,从外部节点到内部节点依次遍历,为截获事件提供了机会。然后是实际的目标接收到事件。最后一个阶段是冒泡阶段,从目标元素逐层冒泡到外部元素<body>,可以在这个阶段对事件做出响应。IE9、 Opera、 Firefox、 Chr...

闭包:私有化变量 《JavaScript高程3》 《JavaScript忍者秘籍》

2016-10-03
阅读 4 分钟
4.1k
用法:assert(condition, “string”); 把字符串显示在页面上,根据条件是否成立决定显示的颜色,条件为真就显示为绿色,否则为红色。

ES5-对象创建与继承----《JavaScript高程3》

2016-09-29
阅读 7 分钟
2k
在逻辑上从低级到高级:工厂模式、构造函数模式、原型模式、组合模式。当然还有其他模式,但是这四者逻辑关系强,总结起来很有感觉。之所以和继承一起分析,也是因为逻辑关系很清晰:原型模式对应原型链继承,构造函数模式对应借用构造函数模式继承,组合模式对应组合继承。逻辑上按照“哪个模式有什么缺点,为什么有这个...

垃圾回收机制——总结自《JavaScript高级程序设计》

2016-09-26
阅读 2 分钟
3.5k
在编写 JavaScript 程序时,开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的回收完全实现了自动管理。这种垃圾收集机制的原理其实很简单:找出那些不再继续使用的变量,然后释放其占用的内存。为此,垃圾收集器会按照固定的时间间隔(或代码执行中预定的收集时间),周期性地执行这一操作。

TCP和UDP的区别

2016-09-21
阅读 2 分钟
3.3k
前言:前几天有幸看到面试题目收集中的面试题目总结,觉得既容易又复杂。容易是因为都知道一点,复杂是因为在自己学习过程中没有细致的总结过这些知识点,这是我这样的EE转CS的非科班生的背景伤。所以打算针对其中的单个知识点,进行系统的总结归纳。如果有不正确的地方,请在评论中指出,不胜感激!

XML和JSON

2016-09-21
阅读 2 分钟
1.8k
1) 数据体积方面。JSON相对于XML来讲,数据的体积小,传递的速度更快些。2)数据交互方面。JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。3)数据描述方面。JSON对数据的描述性比XML较差。4)传输速度方面。JSON的速度要远远快于XML。