ES6之字符串

字符串方法去除首尾空格:trim()includes()方法:在给定文本存在于字符串中的任意位置时会返回 true ,否则返回false;startsWith()方法:在给定文本出现在字符串起始处时返回 true ,否则返回 false;endsWith()方法:在给定文本出现在字符串结尾处时返回 true ,否则返回 false。repeat():重复字符串次数模板字面量模板字面量的最简单语法,

- 阅读全文 -

ES6之 let,const

var 声明与变量提升var是js的变量声明语句,使用var声明的变量,无论其声明的实际语句在何处,都会被提升到所在函数的顶部(如果声明不在任意函数内,则视为在全局作用域的顶部),这种特性就叫做变量提升。声明式函数也有同样特性我们来解释一下变量提升:// 浏览器V8处理前 console.log(single) //undefined var single=1 // 浏览器V8引擎处理后,实

- 阅读全文 -

如何让进行代码重构?

提炼函数在JavaScript开发中,我们大部分时间都在与函数打交道,所以我们希望这些函数有着良好的命名,函数体内包含的逻辑清晰明了。如果一个函数过长,不得不加上若干注释才能让这个函数显得易读一些,那这些函数就很有必要进行重构如果在函数中有一段代码可以被独立出来,那我们最好把这些代码放进另外一个独立的函数中。这是一种很常见的优化工作,这样做的好处主要有以下几点。避免出现超大函数。独立出来的函数有助

- 阅读全文 -

设计原则和编程技巧之最少知识原则

什么是最少知识原则?最少知识原则(LKP)说的是一个软件实体应当尽可能少地与其他实体发生相互作用。这里的软件实体是一个广义的概念,不仅包括对象,还包括系统、类、模块、函数、变量等。本节我们主要针对对象来说明这个原则,下面引用《面向对象设计原理与模式》一书中的例子来解释最少知识原则:某军队中的将军需要挖掘一些散兵坑。下面是完成任务的一种方式:将军可以通知上校让他叫来少校,然后让少校找来上尉,并让上尉

- 阅读全文 -

设计原则和编程技巧之单一职责原则

什么是单一职责原则(SRP)?单一职责原则(SRP)的职责被定义为“引起变化的原因”。如果我们有两个动机去改写一个方法,那么这个方法就具有两个职责。每个职责都是变化的一个轴线,如果一个方法承担了过多的职责,那么在需求的变迁过程中,需要改写这个方法的可能性就越大。此时,这个方法通常是一个不稳定的方法,修改代码总是一件危险的事情,特别是当两个职责耦合在一起的时候,一个职责发生变化可能会影响到其他职责的

- 阅读全文 -

JavaScript设计模式之适配器模式

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

- 阅读全文 -

设计原则和编程技巧之开放-封闭原则

什么是开放-封闭原则(ocp)定义:软件实体(类、模块、函数)等应该是可以扩展的,但是不可修改。思想:当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增加代码的方式,但是不允许改动程序的源代码。用对象的多态性消除条件分支过多的条件分支语句是造成程序违反开放-封闭原则的一个常见原因。每当需要增加一个新的if语句时,都要被迫改动原函数。把if换成switch-case是没有用的,这是一

- 阅读全文 -

JavaScript设计模式之状态模式

什么是状态模式?状态模式是一种非同寻常的优秀模式,它也许是解决某些需求场景的最好方法。虽然状态模式并不是一种简单到一目了然的模式(它往往还会带来代码量的增加),但你一旦明白了状态模式的精髓,以后一定会感谢它带给你的无与伦比的好处。状态模式的关键是区分事物内部的状态,事物内部状态的改变往往会带来事物的行为改变。初识状态模式我们来想象这样一个场景:有一个电灯,电灯上面只有一个开关。当电灯开着的时候,此

- 阅读全文 -

JavaScript设计模式之装饰者模式

引:什么是装饰者模式在传统的面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活,还会带来许多问题:一方面会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之改变;另一方面,继承这种功能复用方式通常被称为“白箱复用”,“白箱”是相对可见性而言的,在继承方式中,超类的内部细节是对子类可见的,继承常常被认为破坏了封装性。使用继承还会带来另外一个问题,在完成一些功能复用的同时

- 阅读全文 -

JavaScript设计模式之中介者模式

引在我们生活的世界中,每个人每个物体之间都会产生一些错综复杂的联系。在应用程序里也是一样,程序由大大小小的单一对象组成,所有这些对象都按照某种关系和规则来通信。平时我们大概能记住10个朋友的电话、30家餐馆的位置。在程序里,也许一个对象会和其他10个对象打交道,所以它会保持10个对象的引用。当程序的规模增大,对象会越来越多,它们之间的关系也越来越复杂,难免会形成网状的交叉引用。当我们改变或删除其中

- 阅读全文 -