起风了

“路海长 青夜旷 越过群山追斜阳”

关于找工作时的境遇与情绪波动

前言:投了很多公司,大公司小公司,在专门的网站上投的基本是石沉大海了,找人内推的还在静候佳音中。。。大三结束升大四,压力远远不是大二升大三时能够想象的,就业难的问题到底还是重重的压下来了。。。 正文: 其实说就业难是大环境的一方面,还有同样很重要的一方面就是个人条件,我所谓的个人条件=实...

常见面试算法题JS实现-设计一个有getMin功能的栈

前言:   已经确定工作了~下周一正式入职,按理说应该是可以好好浪荡一周的,但是内心总是不安,总觉得自己这个水平真的太菜了,还是趁着现在有自己的时间,赶紧多看看书,多学习学习吧orz所以把之前校招买的书,又翻出来看,都是很经典的书,但是因为自己找到工作之后就放纵了,几乎都放在书架上长灰,现...

常见面试算法题JS实现-仅用递归函数和栈操作逆序一个栈

前言:   因为JAVA和JS语言特性的不同,有些东西在JAVA中可能需要一些技巧和手段才能实现的复杂程序,但是在JS中可能就是天然存在的,所以这套书里面的题目不会全部用JS去实现一遍,因为可能JS的实现太过于简单,以至于写出来没有太多意义,而有些可能会实现结果和书中JAVA实现非常相似,而后者的话,我还...

怎样实现前端裁剪上传图片功能

怎样实现前端裁剪上传图片功能缩略图
由于前端是不能直接操作本地文件的,要么通过<input type="file">用户点击选择文件或者拖拽的方式,要么使用flash等第三方的控件,但flash日渐衰落,所以使用flash还是不提倡的。同时html5崛起,提供了很多的api操控,可以在前端使用原生的api实现图片的处理,这样可以减少后端服务器的压力,同时对用...

Effective前端5:减少前端代码耦合

Effective前端5:减少前端代码耦合缩略图
什么是代码耦合?代码耦合的表现是改了一点毛发而牵动了全身,或者是想要改点东西,需要在一堆代码里面找半天。由于前端需要组织js/css/html,耦合的问题可能会更加明显,下面按照耦合的情况分别说明: 1. 避免全局耦合 这应该是比较常见的耦合。全局耦合就是几个类、模块共用了全局变量或者全局数据结构,...

从Chrome源码看浏览器如何构建DOM树

从Chrome源码看浏览器如何构建DOM树缩略图
最近下了Chrome的源码,安装了一个debug版的Chromium研究了一下,虽然很多地方都一知半解,但是还是有一点收获,将在这篇文章介绍DOM树是如何构建的,看了本文应该可以回答以下问题: IE用的是Trident内核,Safari用的是Webkit,Chrome用的是Blink,到底什么是内核,它们的区别是什么? 如果没有声明<...

从Chrome源码看浏览器的事件机制

从Chrome源码看浏览器的事件机制缩略图
在上一篇《从Chrome源码看浏览器如何构建DOM树》介绍了blink如何创建一棵DOM树,在这一篇将介绍事件机制。 上一篇还有一个地方未提及,那就是在构建完DOM之后,浏览器将会触发DOMContentLoaded事件,这个事件是在处理tokens的时候遇到EndOfFile标志符时触发的:           ...

从Chrome源码看JS Array的实现

从Chrome源码看JS Array的实现缩略图
我们在上一篇介绍了JS Object的实现,这一篇将进一步介绍JS Array的实现。 在此之前,笔者将Chromium升级到了最新版本60,上一次是在元旦的时候下的57,而当前最新发布的稳定版本是57。57是三月上旬发布的,所以Chrome发布一个大版本至少用了两、三个月的时间。Chrome 60的devTool增加了很多有趣的功能,...

十大经典排序算法(动图演示)

十大经典排序算法(动图演示)缩略图
0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间...

JavaScript 内存泄露问题

JavaScript 内存泄露问题缩略图
内存泄露是每个开发者最终都不得不面对的问题。即便使用自动内存管理的语言,你还是会碰到一些内存泄漏的情况。内存泄露会导致一系列问题,比如:运行缓慢,崩溃,高延迟,甚至一些与其他应用相关的问题。 什么是内存泄漏 本质上来讲,内存泄露是当一块内存不再被应用程序使用的时候,由于某种原因,这块...