JavaScript设计模式之职责链模式

概述 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。顾名思义。 生活场景 公交车,后门上车的传递自己的卡或者前给前面的人。 实例 var order500 = function (orderType, pay, stock) { if (orderType === 1 && pay === true) { console.log (`%c--500-- `, 'color:blue;font-weight...

适配器模式

适配器模式 适配器模式的作用是解决两个软件实体间的接口不兼容的问题。 生活中的例子: 插头转换器、电源适配器、USB转接口等。 适配器模式是一种“亡羊补牢”的模式,很少在程序设计之初就使用。 代码 var baiduMap=function(){ show:function(){ console.log('百度地图') } }//多个此类函数如腾讯、高德、谷歌等 //某天,谷歌地图提供的不叫show方法了(第三方接口方法...

JavaScript函数式编程

读书笔记系列 函数的第一原则是要小,第二原则是要更小。 数学函数定义的关键是函数逻辑不应依赖于外部环境。 函数 是一段可以通过其名称被调用的代码,他可以传递参数并返回值。 方法 是一段必须通过其名称及其关联对象的名称被调用的代码。 引用透明性: 所有的函数对于相同的输入都将返回相同的值。 identify // 命令式方法遍历数组 告诉编译器如何做 var array=[1,2,3] for(var i=0;i<...

webpack相关内容总结

webpack 一、重要概念 webpack是静态模块打包器。 入口(entry):指示webpack应该用哪些模块。 一个简单的例子,webpack.config.js 需要考虑的问题:代码的入口、打包的入口,单个或者多个。 module.exports = { entry: './path/to/my/entry/file.js' }; // 另外一写法,推荐 entry:{ index:['index.js','app.js'], vendor:'vendor.js', } ,推荐 x   1 module.exports = ...

ECMAScript 7

指数运算符 运算顺序 求幂运算符具有js中所有二进制运算符的优先级(一元运算符的优先级高于**),意味着其首先应用于所有复合操作。 运算限制 禁止求幂运算符左侧的一元表达式可以消除歧义。 Array.prototype.includes() 值的比较 let v11=[1,NaN,2]; console.log(v11.indexOf(NaN));// -1 console.log(v11.includes(NaN));//true let v12=[1,+0,2]; console.log(v12.indexOf(-0));//1 console.l...

ES6之class

ES6之前 function PersonType(name) { this.name = name; } PersonType.prototype.sayName = function() { console.log(this.name); }; let person = new PersonType("Nicholas"); person.sayName(); // 输出 "Nicholas" console.log(person instanceof PersonType); // true console.log(person instanceof Object); // true class class PersonClass { // 等效于 PersonType 构造...

迭代器与生成器(Iterators and Generators)

前言 for循环存在问题。 遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。 Iterator的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是ES6创造了一种新的遍历命令for…of循环,Iterator接口主要...

ES6 中的let与const

基础 变量的创建方式取决于你如何声明他。 var声明的变量,会被视为在函数级作用域内顶部的位置(不在函数内部则全局) function getValue(condition) { //var value; if (condition) { var value = "blue";//value="blue"; // other code return value; } else { // value exists here with a value of undefined return null; } // value ex...

# Airbnb React/JSX 样式指南

# Airbnb React/JSX 样式指南 * 书写 React and JSX 的一个合理的方法* ## 目录 1. [基本规则](#basic-rules) 1. [Class vs `React.createClass` vs无状态的](#class-vs-reactcreateclass-vs-stateless) 1. [Mixins](#mixins) 1. [命名](#naming) 1. [声明](#declaration) 1. [对齐方式](#alignment) 1. [引号](#quotes) 1. [空格](#spacing) 1. [Props](#props) 1. [Refs](#refs) 1. [圆括号](...