ES6之解构

对象解构let node = { type: "Identifier", name: "foo" }; let { type, name } = node; console.log(type); // "Identifier" console.log(name); // "foo" 解构赋值let no

- 阅读全文 -

ES6之扩展的对象功能

对象的类别普通对象:拥有 JS 对象所有默认的内部行为。奇异对象:其内部行为在某些方面有别于默认行为。标准对象:在 ES6 中被定义的对象,例如 Array 、 Date ,等等。标准对象可以是普通的,也可以是奇异的。内置对象:在脚本开始运行时由 JS 运行环境提供的对象。所有的标准对象都是内置对象。对象字面量语法的扩展ES6 用几种方式扩展了对象字面量,将这种对象字面量语法变得更加强大、更加简洁

- 阅读全文 -

ES6之函数

带默认参数的函数在 ES5 或更早的版本中,你可能会使用下述模式来创建带有参数默认值的函数:function makeRequest(url, callback) { callback = callback || function() {}; // 函数的剩余部分 } ES6 能更容易地为参数提供默认值,它使用了初始化形式,以便在参数未被正式传递进来时使用。例如:function

- 阅读全文 -

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是没有用的,这是一

- 阅读全文 -