随笔分类 - JavaScript
摘要:遇到的问题 在开发过程中会遇到频率很高的事件或者连续的事件,如果不进行性能的优化,就可能会出现页面卡顿的现象,比如: 1. 鼠标事件:mousemove(拖曳)/mouseover(划过)/mouseWheel(滚屏) 2. 键盘事件:keypress(基于ajax的用户名唯一性校验)/keyup(
阅读全文
摘要:很多的前端框架都支持数据双向绑定了,最近正好在看双向绑定的实现,就用Javascript写了几个简单的例子。 几个例子中尝试使用了下面的方式实现双向绑定: 1. 发布/订阅模式 2. 属性劫持 3. 脏数据检测 发布/订阅模式 实现数据双向绑定最直接的方式就是使用PubSub模式: 当model发生
阅读全文
摘要:上周利用业余的时间看了看Redux,刚开始有点不适应,一下在有了Action、Reducer、Store和Middleware这么多新的概念。 经过一些了解之后,发现Redux的单向数据里的模式还是比较容易理解的,结合着Redux的单向数据流模型,很多概念就比较清晰了。 下面就按照自己的理解整理出了
阅读全文
摘要:模式是解决或者避免一些问题的方案。 在JavaScript中,会用到一些常用的编码模式。下面就列出了一些常用的JavaScript编码模式,有的模式是为了解决特定的问题,有的则是帮助我们避免一些JavaScript中容易出现的错误。 单一var模式 所谓“单一var模式”(Single var pa
阅读全文
摘要:在JavaScript中,对象的创建可以脱离类型(class free),通过字面量的方式可以很方便的创建出自定义对象。另外,JavaScript中拥有原型这个强大的概念,当对象进行属性查找的时候,如果对象本身内找不到对应的属性,就会去搜索原型链。所以,结合原型和原型链的这个特性,JavaScrip...
阅读全文
摘要:在JavaScript中,函数是个非常重要的对象,函数通常有三种表现形式:函数声明,函数表达式和函数构造器创建的函数。本文中主要看看函数表达式及其相关的知识点。函数表达式首先,看看函数表达式的表现形式,函数表达式(Function Expression, FE)有下面四个特点:在代码中须出现在表达式...
阅读全文
摘要:原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有"[[prototype]]"属性,函数对象有"prototype"属性,原型对象有"constructor"属性。为了弄清原型,以及原型相关的这些属性关系,就有了这篇文章。相信通过这篇文章一定能够清楚的认识到原型,现在...
阅读全文
摘要:前面两篇文章介绍了JavaScript执行上下文中两个重要属性:VO/AO和scope chain。本文就来看看执行上下文中的this。首先看看下面两个对this的概括:this是执行上下文(Execution Context)的一个重要属性,是一个与执行上下文相关的特殊对象。因此,它可以叫作上下文...
阅读全文
摘要:上一篇文章中介绍了Execution Context中的三个重要部分:VO/AO,scope chain和this,并详细的介绍了VO/AO在JavaScript代码执行中的表现。本文就看看Execution Context中的scope chain。作用域开始介绍作用域链之前,先看看JavaScr...
阅读全文
摘要:在JavaScript的运行过程中,经常会遇到一些"奇怪"的行为,不理解为什么JavaScript会这么工作。这时候可能就需要了解一下JavaScript执行过程中的相关内容了。执行上下文在JavaScript中有三种代码运行环境:Global CodeJavaScript代码开始运行的默认环境Fu...
阅读全文