#你不知道的Javascript

如何避免javascript中的冲突

[1]工程师甲编写功能Avara=1;varb=2;alert(a+b);//3 [2]工程师乙添加新功能Bvara=2;varb=1;alert(a-b);//1 [3]上一步中,工程师乙在不知情的情况下,定义了同名变量a,产生冲突。于是使用匿名函数将脚本包起来,让变量作用域控制在匿名函数之内。/...

深入理解javascript中的事件循环event-loop

  本文将详细介绍javascript中的事件循环event-loop 线程  javascript是单线程的语言,也就是说,同一个时间只能做一件事。而这个单线程的特性,与它的用途有关,作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同...

javascript中的内存管理和垃圾回收

  不管什么程序语言,内存生命周期基本是一致的:首先,分配需要的内存;然后,使用分配到的内存;最后,释放其内存。而对于第三个步骤,何时释放内存及释放哪些变量的内存,则需要使用垃圾回收机制。本文将详细介绍javascript中的内存管理和垃圾回收 分配内存  为了不让程序员费心分配内存,JavaScript在定...

关于javascript代码优化的8点建议

  本文将详细介绍JS编程风格的几个要点 松耦合  当修改一个组件而不需要更改其他组件时,就做到了松耦合  1、将JS从CSS中抽离:不要使用CSS表达式//不好的做法.box{width:expression(document.body.offsetWidth+’px')}  2、将CSS从JS...

javascript编码标准

  编码标准是有争议的。几乎每个人都有自己的标准,但对标准应该是什么样的,则似乎很少能达成共识。但编码标准意味着,通过共同语言和一致的结构,把开发人员从无意义的工作中解放出来。允许开发人员把创新精神放在重要的逻辑上面。一个好的标准能提供清晰明了的意图,是有效工作所必需的。本文将详细介绍Javascript编码标准&nb...
代码星球 ·2020-05-24

javascript设计模式——适配器模式

  适配器模式的作用是解决两个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作。适配器的别名是包装器(wrapper),这是一个相对简单的模式。在程序开发中有许多这样的场景:当试图调用模块或者对象的某个接口时,却发现这个接口的格式并不符合目前的需求。这时候有两种解...

javascript设计模式——状态模式

  状态模式是一种非同寻常的优秀模式,它也许是解决某些需求场景的最好方法。虽然状态模式并不是一种简单到一目了然的模式(它往往还会带来代码量的增加),但一旦明白了状态模式的精髓,以后一定会感谢它带给你的无与伦比的好处。状态模式的关键是区分事物内部的状态,事物内部状态的改变往往会带来事物的行为改变。本文将详细介绍状态模式&...

javascript设计模式——装饰者模式

  在程序开发中,许多时候都并不希望某个类天生就非常庞大,一次性包含许多职责。那么可以使用装饰者模式。装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象。本文将详细介绍装饰者模式 概念  在传统的面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活,还会带...

javascript设计模式——中介者模式

  程序由大大小小的单一对象组成,所有这些对象都按照某种关系和规则来通信。当程序的规模增大,对象会越来越多,它们之间的关系也越来越复杂,难免会形成网状的交叉引用。当改变或删除其中一个对象的时候,很可能需要通知所有引用到它的对象。面向对象设计鼓励将行为分布到各个对象中,把对象划分成更小的粒度,有助于增强对象的可复用性,但...

javascript设计模式——职责链模式

  职责链模式的定义是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。职责链模式的名字非常形象,一系列可能会处理请求的对象被连接成一条链,请求在这些对象之间依次传递,直到遇到一个可以处理它的对象,把这些对象称为链中的节点。本...

javascript设计模式——享元模式

  享元(flyweight)模式是一种用于性能优化的模式,“fly”在这里是苍蝇的意思,意为蝇量级。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。如果系统中因为创建了大量类似的对象而导致内存占用过高,享元模式就非常有用了。在javascript中,浏览器特别是移动端的浏览器分配的内存...

javascript设计模式——模板方法模式

  在javascript开发中用到继承的场景其实并不是很多,很多时候喜欢用mix-in的方式给对象扩展属性。但这不代表继承在javascript里没有用武之地,虽然没有真正的类和继承机制,但可以通过原型prototype来变相地实现继承。本文将详细介绍一种基于继承的设计模式——模板方法(Tem...

javascript设计模式——组合模式

  在程序设计中,有一些和“事物是由相似的子事物构成”类似的思想。组合模式就是用小的子对象来构建更大的对象,而这些小的子对象本身也许是由更小的“孙对象”构成的。本文将详细介绍组合模式 宏命令  宏命令对象包含了一组具体的子命令对象,不管是宏命令对象,还是子命令对...

javascript设计模式——命令模式

  假设有一个快餐店,而我是该餐厅的点餐服务员,那么我一天的工作应该是这样的:当某位客人点餐或者打来订餐电话后,我会把他的需求都写在清单上,然后交给厨房,客人不用关心是哪些厨师帮他炒菜。餐厅还可以满足客人需要的定时服务,比如客人可能当前正在回家的路上,要求1个小时后才开始炒他的菜,只要订单还在,厨师就不会忘记。客人也可...

javascript设计模式——发布订阅模式

  发布—订阅模式又叫观察者模式,它定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。在javascript开发中,一般用事件模型来替代传统的发布—订阅模式。本文将详细介绍发布订阅模式 现实事例  不论是在程序世界里还是现实生活中,发布&mdas...
首页上一页...6869707172...下一页尾页