JavaScript

设计模式---状态模式在web前端中的应用

在vue.js之类的mvvm的框架大行其道的当下,开发中最常见的场景就是通过改变数据来展示页面或模块的不同状态,当我们把mvvm玩的不亦乐乎的时候,有时也会停下了想想:在某些项目中不能用vuejs之类的框架时,我们怎么通过改变数据来修改页面或者模块的状态呢。嗯。说到状态,就想到了状态模式状态模式:在很多情况下,一个对象的行为取决于一个或多个动态变化的状态属性,这样的对象叫做

识别滚动条上的mousedown mouseup事件

转载请注明出处:https://github.com/xinglie/xi...网页内容区域自动滚动,滚动条会随着内容的增加自动往下滚动。当用户鼠标在滚动条上按下的时候,我们可以假设他(她)正在浏览聊天内容,那么这个时候好的用户体验就不能让滚动条再自动滚动了。为了实现这个功能,可能大家首先会想到的就是mouse down 和 mouse up事件了。嗯,我们可以利用它,我们

前端开发之单一职责原则

单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。在前端开发的过程中,一个需求总会有多种解决方法,如果多人开发,其实我觉得单一职责挺适合前端的,前阵子看了下实习生的代码,就想举这个例子来说说。需求描述:两个input框作为查询条件,一个按照名

atom中最好的js代码片段

使用atom编辑器有一段时间,一直没找到比较顺手的代码片段补全,于是决定自己整合一个全的,于是便有了这个代码片段包, atom中包名叫 best-js-snippets,有如下特性:集成express代码补全集成nodejs中fs模块的代码补全集成nodejs中util模块的代码补全集成es6集成JavaScript中dom操作的代码集成nodejs中process,和pa

每天一章犀牛书——CHAP6:对象

对象是属性的无序集合。因此,这一章主要从对象和属性两个方面来阐述。1. 对象1.1 对象的定义对象是属性的无序集合,也可以看做是从字符串到值的映射。1.2 对象的分类对象可分为三类:内置对象(native object):由ECMAScript规范定义的对象。如数组、函数、日期、正则表达式等都是内置对象。宿主对象(host object):JS解释器所嵌入的宿主环境(比如W

webpack使用之基础篇

说到自动化构建,你想到了什么?基于AMD的requirejs?还是基于commoJS的browserify?他们都在各自的领域或者说时代发挥了很重要的作用。但是时代的变迁,webpack成了现在的佼佼者,我们不知道什么时候wepback也会被取代,但是现在我们必须要掌握。我不担心我学完webpack新东西来了就没用了,相反的我很期待也很高兴有新的东西来取代webpack,因

npm 生态一瞥

npm 是 2009 年开始的一个 javascript 模块管理工具,也是最流行的代码共享平台之一。2013 年 npm 的模块总数是 4 万,2014 年就升到 8 万以上,超过所有其他同类平台。(数据来源: http://www.modulecounts.com )截止现在 npm 的模块总数量是 31 万个,6 月份的总下载量超过 49 亿(因为有些情况下 npm

类数组对象转换为数组对象的简单理解

关于类数组对象JavaScript中有一些著名的类数组对象,它们看起来很像数组:拥有length属性元素按序保存在对象中,可以通过索引访问但实际和数组又不是一回事:没有数组的很多方法也会有数组没有的方法(e.g. NodeList的item()方法)有些类数组对象是动态变化的(e.g. NodeList的值是基于DOM结构动态执行查询的结果)……将类数组对象转换为数组对象A

动静分离的数据并发加载策略

作者:莫冠钊转载请注明出处,保留原文链接和作者信息前言当今许多大型网页应用尤其是SPA均采用了动静分离的策略。关于动静分离的描述,这里推荐一篇不错的博文 网站静态化处理—动静分离策略。本人是做前端的,之前有幸与一位对性能追求极致的后端同学一起开发这种动静分离的web项目,以下将从传统顺序模式、单路数据并发模式(以下简称单并发模式)、多路数据并发模式(以下简称多路并发模式)来