- 博客(15)
- 收藏
- 关注
转载 精读前后端渲染之争
明确三个概念:「后端渲染」指传统的 ASP、Java 或 PHP 的渲染机制;「前端渲染」指使用 JS 来渲染页面大部分内容,代表是现在流行的 SPA 单页面应用;「同构渲染」指前后端共用 JS,首次渲染时使用 Node.js 来直出 HTML。一般来说同构渲染是介于前后端中的共有部分。
2017-04-18 09:23:13 541
原创 2017年三月初大厂前端面试总结
2017年三月初大厂前端面试总结过去一个多星期,笔者(Chainn)考虑换工作,就面了一些杭州的互联网公司。先后面试了X医、X滴、X易、X为等大厂,中途还面了一些创业公司。我觉得面试不仅可以更好地认识自己的薄弱之处,还可以了解技术发展方向及行业走向。下面就将近期的面试所遇到的技术点做个记录
2017-03-13 21:53:05 4315
原创 Javascript数据结构之禅:平衡二叉树(Balanced Binary Tree, AVL Tree)
Javascript数据结构之禅:平衡二叉树(Balanced Binary Tree, AVL Tree)项目源码地址: github.com/KristenXu/JavascriptDatastructures/blob/master/AVLTree.js1 .基本概念AVL树的复杂程度真是比二叉搜索树高了整整一个数量级——它的原理并不难弄懂,但要把它用代码实现出来还真的有点费脑筋。下面我们来
2017-03-03 14:00:14 2839
原创 性能之巅:《高性能网站建设指南》读书笔记
性能之巅:《高性能网站建设指南》读书笔记前言去年笔者(Chainn)读完了几本前端性能优化以及HTTP等网络方面的书,并在生产环境做了部分应用。这些书包括《高性能网站建设指南》、《高性能网站建设进阶指南》、《大型网站技术架构:核心原理与案例分析》、《HTTP权威指南》、《图解TCP/IP》等,最近遇到一些问题,又开始翻这些书,发现不少技术点颇为生疏,看来该总结一番了。先总结最实用的《高性能网站建设指
2017-02-26 03:02:09 4186
原创 Javascript数据结构之禅:队列
Javascript数据结构之禅:队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(back)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端
2017-02-23 23:03:51 439
转载 八张Gif动图形象地为你介绍 flexbox 是如何工作的
flexbox 承诺将我们从万恶的纯 CSS 中拯救出来(如垂直对齐)。flexbox 也正在实现它的这一目标,但是用户掌握这一新的模型也将会是个挑战。因此在这里,我们将会用动图介绍 flexbox 是如何工作的,使得我们可以用它来做更好的布局。flexbox 的潜在原则是使得布局更加灵活和直观。为了完成这一目标,它允许容器自己来决定如何均匀地分布其中的元素——包括他们的尺寸和他们之间的间距。
2017-02-23 11:48:25 583
原创 Javascript数据结构之禅:二叉查找树(Binary Search Tree)
Javascript数据结构之禅:二叉查找树(Binary Search Tree)二叉查找树,也称二叉搜索树、有序二叉树(英语:ordered binary tree)是指一棵空树或者具有下列性质的二叉树:任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节点的左、右子树也分别为二叉查找树; 没有键值相
2017-02-22 00:02:53 335
原创 Javascript研究:深复制与浅复制
Javascript研究:深复制与浅复制var obj = { a:1, arr: [1,2] };var obj1 = obj; //浅复制var obj2 = deepCopy(obj); //深复制因为JavaScript存储对象都是存地址的,所以浅复制会导致 obj 和 obj1 指向同一块内存地址。而深复制一般都是开辟一块新的内存地址,将原对象的各个属性逐个复制
2017-02-21 23:54:29 342
原创 Javascript算法论道: 二分搜索(折半查找)
Javascript算法论道: 二分查找(折半查找)想必大家都玩过”猜数字”游戏: 一般十个人以上玩,主持人出数字,下方猜。主持人在手机或电脑上写下在1-100之间随便1个数字,不能让猜得人知道。其他的人就可以开始猜。猜中的有奖励: 1-100中随机产生一个数字,如:56 每个人开始猜猜数字,如:A说:30 主持人说:低了,30到100 ,B在从30到100中猜数字说:60,主持人
2017-02-19 22:39:55 610
原创 Javascript算法论道
Javascript算法论道: 系列序言系列序言:这是笔者(Chainn)的”Javascript算法”系列的第一篇文章。之所以开设这个系列,是为了记录平时学习、工作中遇到的常见算法,同时也是想和大家讨论、分析大家遇到的有意思的算法。考虑到很多前端都是非科班出身的,并没有系统地进行算法方面的学习,或者即使是科班出身,在校期间学的也是基于C/C++描述的。为此,笔者采用Javascript编写这一系列
2017-02-19 21:39:38 449
原创 Javascript研究: 遍历对象的方式Object.getOwnPropertyNames vs Object.keys vs for ...in
Javascript研究: Object.getOwnPropertyNames vs Object.keys vs for …in这三个方法,都可以用来遍历对象,这非常有用,其中后两个都是es5中新增的方法。 本文会用到一些es5的对象知识,如果你不了解,可以看一下开头提到的文章,首先我们需要一个父对象。var parent = Object.create(Object.prototype, {
2017-02-16 18:52:11 505
原创 Javascript研究: 创建对象方法的总结
Javascript 创建对象方法的总结使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的属性值。var person = new Object(); person.name="kevin"; person.age=31; alert(person.name); alert(person["name"])使用对象字面量创建一个对象;
2017-02-13 16:50:13 281
原创 ssl四次握手简述
ssl四次握手简述1、client请求; 2、server生成随机数1,并返回数字证书和公钥; 3、client生产随机数2,该随机数用服务器公钥加密,防止被窃听,并返回给服务器 4、server用私钥解密随机数2,随后生成随机数3,然后用三个随机数生成“对话密钥”(session key),并返回给客户端,用来加密接下来的整个对话过程
2017-02-13 15:55:34 1925
原创 TCP三次握手与四次挥手
TCP三次握手与四次挥手三次握手(建立连接): 1、client: SYN 2、server: SYN+ACK 3、client: ACK四次挥手(断开连接): 中断连接端可以是Client端,也可以是Server端。 假设中断连接的是client端: 1、client: FIN; 2、server:ACK;(确认收到关闭的要求;考虑如果server还有数据没发完,会让client等着
2017-02-13 15:49:08 351
原创 前端学习之路:exports 与module.exports的区别
exports是module.exports的引用。你的模块最终返回module.exports给调用者,而不是exports。 Node.js 在初始化时就执行了一句 exports = module.exports , 所以 exports 指向了 module.exports 相同的内存, 之后你若改变 module.exports 所指向的內存 , 你必須重新再执行一句 expo
2016-03-25 13:40:30 2811
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人