自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵忠洋的博客

书写一些自己的对编程的理解、常见的问题以及一些工作上的感悟

  • 博客(12)
  • 收藏
  • 关注

原创 函数式编程—4—纯函数(函子)

Point Free (编程风格)将数据处理的过程定义成与数据无关的合成运算,不需要代表数据的那个参数,主要吧简单的运算步骤合成到一起,在使用这种模式之前,我们需要定义一些辅助的基本运算函数不需要指明处理的数据只需要合成运算过程需要定义一些辅助的基本运算函数const fp = require('loadsh/fp')const f = fp.flowRight(fp.join('-'),fp.map(_.toLower),fp.split(' ')) 简单演示HELLO WORD

2020-05-25 20:25:33 398

原创 函数式编程—3—柯里化、函数组合、FP模块

柯里化当一个函数有多个参数的时候可以先传递一部分参数调用它(这部分参数以后永远不变)然后返回一个新的函数接收剩余的参数,返回结果使用柯里化解决硬编码问题简单演示// 硬编码问题function cheackAge(age){ let min =18 //此处存在硬编码 return age>=min}console.log(cheackAge(21)) // true提出硬编码,作为参数解决。基础值需要定义多次function cheackAge(mi

2020-05-24 01:08:06 532

原创 函数式编程—2—纯函数(纯函数优势、副作用、loadsh、简单的jest进行单元测试)

概念相拥的属于永远会得到相同的输出,而且没有任何可观察的副作用。函数式编程不会保留计算中间的结果,所以边开那个是不可改变的(无状态的)可以吧一个函数的执行结果交给另外一个函数去处理纯函数就是类似数学中的函数(用来描述输入和输出的关系)y=f(x)lodash是一个纯函数的功能库,提供了对数组、数字、对象、字符串、函数等操作的一些方法slice返回数组部分的指定部分,不会改变原数组,并且输入相同的值得到的总是相同的const arr1 = [1, 2, 3]console..

2020-05-22 00:43:05 608

原创 设计模式——适配器模式(适配器模式的定义、实际项目的运用、以及个人对适配器模式的理解)

适配器模式概念有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。说人话就是,你的3.5mm耳机不能插入新买的MatePro 30,所以买了一个type-c转接头,这样就能愉快插入新买的MatePro 30了。type-c转接头就可以理解为适配器。这样就可以让两个不兼容的事物或者接口连接在一起并且实现事物本身的作用,听歌、打电话实现3.5mm耳机通过适配器连接手机//

2020-05-21 00:22:31 243

原创 函数式编程—1—编程思想、高阶函数、部分es6方法模拟、闭包解析及案例

函数式编程为什么要学习函数式编程函数式编程的特性(纯函数,柯里化,函数组合)函数式编程的应用场景函数式编程库Lodash为什么要学习函数式编程函数式编程随着React的流行受到越来越多的关注,例如高阶组件、hookVue3也开始拥抱函数式编程函数式编程可以抛弃this打包的过程中可以更好地利用tree shaking过滤无用代码方便测试,方便并行处理有较多类库帮助我们进行函数式开发:lodash、underscore、ramda函数式编程概念函数式编程(Function

2020-05-20 23:05:39 221

原创 设计模式——装饰器模式(作用、意义、实现before、after、es7中的修饰符)

作用及意义其实使用装饰器模式就是我压根不想去关心它现有的业务逻辑是什么。我只是想对它已有的功能做个拓展,只关心拓展出来的那部分新功能如何实现。实际工作中的运用(简单粗暴)老板交给小明一个远古项目,告诉小明相关开发已经跑路离职,没有任何交接文档。你来给我修改下这个Low代码,添加一段你写的Low代码。小明粗暴的写下了如下代码function lowCode(){ console.log('大量很Low的代码')}function myCode(){ console.log(

2020-05-19 23:53:34 1101

原创 设计模式——单例模式(单例模式介绍 实战案例及vuex的简单分析)

有一个实例化的过程(只有一次),产生实例化对象 new提供返回实例对象的方法。每次实例化都会产生一个新的对象这肯定不是单例模式class SingleCase{ log(){ console.log('我是一个单例对象') }}const singl1 = new SingleCase()const singl2 = new SingleCase()console.log(singl1==singl2) // false让我们改造下上面的代码cla

2020-05-19 00:20:42 3073

原创 设计模式——工厂模式(通俗易懂、徐徐渐进)

看了修言大大的小册感觉受益匪浅,所以出次读后感误人子弟为道友解惑简单工厂模式小明看到了小王同学的iphone6羡慕不已。突然想到我也可以造一台啊,说干就干。const xiaoming_iphone6={ name:'xiaoming_iphone6', color:'白色', os:'IOS', cpu:'APPLE'}小明成功的动手造出来一台iphone6,兴致冲冲的向暗恋已久的小红炫耀。小红说我想要土豪金的。小明赶快去又去做了一台土豪金的iphone6。c

2020-05-18 21:37:28 315

原创 TyepeScript、Flow入门教程及强类型弱类型简单阐述

强类型与弱类型(类型安全)(此处存在争议,以下观点仅代表个人理解) 编程语言分为强类型与弱类型,强类型有更强的类型约束,而弱类型中几乎没有什么约束强类型语言在语言层面就限制了函数的实参类型必须与形参类型相同不允许任意数据的隐式转换错误更早暴露代码更智能,编码更准确重构更加牢靠减少不必要的类型判断弱类型语言在语言层面不会限制实参的类型语序任意数据的隐式转换静态类型与动态类型(类型检查)静态类型语言一个变量声明时它的类型就是明确的声明后它的类型不允许在修.

2020-05-17 12:36:47 304

原创 JavaScript异步编程及其工作原理,知其然知其所以然

异步编程同步模式与异步模式事件循环与消息队列异步编程的几种方式Promise异步方案、宏方案/微任务队列Generator异步方案、Async/awit 语法糖常见名词CallStatck 调用栈EventLoop 事件循环WebApis 应用程序编程接口Queue 消息队列同步模式执行顺序和编译方式 function log(){ console.log('log') } log() console.

2020-05-16 01:15:58 400

原创 ES6知识点合集由浅入深

写在前面的一些话,对于ES6之前一直都是用到哪里查哪里。一直也没有机会完全的读完阮一峰老师的书。刚好这段疫情时间有充足的时间用来学习,下面这篇文章可以带你了解es6新增属性、对象、数据结构等。如果真的有时间不妨读完阮一峰老师的书let与块及作用域es6以前只有全局作用域与函数作用域,es6中增加了块级作用域。块级作用域就是{}包裹的范围。es6之前if(true){ var a = 1 console.log(a) //1}console.log(a) //1e.

2020-05-15 13:22:47 292

原创 21行代码撸一个表单验证器(仿lumen Validator)

验证下面的数据//等待验证的数据let awitWerified = { //必须填写、必须是string类型、最小长度6位、最大长度10位 name:'123', //必须填写、必须是手机号 phone:'15210328198'}编写规则let rules={ // 必填 required: function(value, errorMsg='不能为空') { if(value === ''|| value == null) {

2020-05-12 16:05:04 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除