![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 84
赵忠洋
CV工程师,面向Search Engines编程
展开
-
Nodejs + Redis = MQ(简易消息队列实现)
从零到一 用nodejs 手写一个简易的消息队列,手把手教学。emm 如果还是不会 ,去仓库拿吧 😝原创 2022-07-19 22:56:19 · 1510 阅读 · 0 评论 -
从回调函数到Promise及实战案例,一次搞懂异步编程
基于Callback 与 Promise 以及 Async/await实现下面的案例原创 2022-06-14 16:23:03 · 381 阅读 · 0 评论 -
正则从入门到放弃
前言本人参考了 前端胖头鱼 的文章,或者说搬运的大部分内容,但也自己做了部分补充和修改。原文地址 - 作者 前端胖头鱼原文地址 - 作者 老姚 请心理默念三遍正则表达式是匹配模式,要么匹配字符,要么匹配位置正则表达式是匹配模式,要么匹配字符,要么匹配位置正则表达式是匹配模式,要么匹配字符,要么匹配位置位置匹配此部分内容都是在确定或者寻找位置,常用位置 ^、$、\b、\B、?=p、(?!p)、(?<=p)、(?<!p)脱字符 ^ ,匹配行的开头在 hello 的开原创 2022-03-31 19:40:13 · 457 阅读 · 0 评论 -
函数式编程—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 · 365 阅读 · 0 评论 -
函数式编程—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 · 496 阅读 · 0 评论 -
函数式编程—2—纯函数(纯函数优势、副作用、loadsh、简单的jest进行单元测试)
概念相拥的属于永远会得到相同的输出,而且没有任何可观察的副作用。函数式编程不会保留计算中间的结果,所以边开那个是不可改变的(无状态的)可以吧一个函数的执行结果交给另外一个函数去处理纯函数就是类似数学中的函数(用来描述输入和输出的关系)y=f(x)lodash是一个纯函数的功能库,提供了对数组、数字、对象、字符串、函数等操作的一些方法slice返回数组部分的指定部分,不会改变原数组,并且输入相同的值得到的总是相同的const arr1 = [1, 2, 3]console..原创 2020-05-22 00:43:05 · 582 阅读 · 0 评论 -
函数式编程—1—编程思想、高阶函数、部分es6方法模拟、闭包解析及案例
函数式编程为什么要学习函数式编程函数式编程的特性(纯函数,柯里化,函数组合)函数式编程的应用场景函数式编程库Lodash为什么要学习函数式编程函数式编程随着React的流行受到越来越多的关注,例如高阶组件、hookVue3也开始拥抱函数式编程函数式编程可以抛弃this打包的过程中可以更好地利用tree shaking过滤无用代码方便测试,方便并行处理有较多类库帮助我们进行函数式开发:lodash、underscore、ramda函数式编程概念函数式编程(Function原创 2020-05-20 23:05:39 · 195 阅读 · 0 评论 -
TyepeScript、Flow入门教程及强类型弱类型简单阐述
强类型与弱类型(类型安全)(此处存在争议,以下观点仅代表个人理解) 编程语言分为强类型与弱类型,强类型有更强的类型约束,而弱类型中几乎没有什么约束强类型语言在语言层面就限制了函数的实参类型必须与形参类型相同不允许任意数据的隐式转换错误更早暴露代码更智能,编码更准确重构更加牢靠减少不必要的类型判断弱类型语言在语言层面不会限制实参的类型语序任意数据的隐式转换静态类型与动态类型(类型检查)静态类型语言一个变量声明时它的类型就是明确的声明后它的类型不允许在修.原创 2020-05-17 12:36:47 · 274 阅读 · 0 评论 -
JavaScript异步编程及其工作原理,知其然知其所以然
异步编程同步模式与异步模式事件循环与消息队列异步编程的几种方式Promise异步方案、宏方案/微任务队列Generator异步方案、Async/awit 语法糖常见名词CallStatck 调用栈EventLoop 事件循环WebApis 应用程序编程接口Queue 消息队列同步模式执行顺序和编译方式 function log(){ console.log('log') } log() console.原创 2020-05-16 01:15:58 · 395 阅读 · 0 评论 -
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 · 279 阅读 · 0 评论 -
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 · 245 阅读 · 0 评论 -
关于代码封装(Date)
为什么需要代码封装在开发过程中会产生大量的重复性代码,如果不进行代码封装在后期维护需要修改多处,从而导致代码难以维护。例如下面这段代码/**优点 1.今天时间与明天时间的基本功能 2.实现了打印年月日周缺点 1.无法实现 获取指定时间的今天与明天 2.重复定义时间对象 3.获取周代码重复 4.打印输出代码重复*///获取今天时间......原创 2020-03-01 21:41:47 · 832 阅读 · 0 评论 -
网页水印设置
【代码】网页水印设置。原创 2020-03-01 21:37:11 · 1596 阅读 · 0 评论 -
原生js日历制作
html代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equ...原创 2020-03-01 19:06:41 · 311 阅读 · 0 评论 -
前端开发mock数据 nginx+json-server+faker
nginx配置 前端反向代理前言因为需要本地开发模拟线上环境,所以应用json-server mock数据通过nginx配置反向代理反向代理,通过修改host 来绑定域名。通过查找多篇文档配置成功。下载nginx因为我是mac环境下开发,所有用brew下载$ brew install nginx# 安装完成后会看到# /usr/local/etc/nginx/nginx.conf 配置#...原创 2017-06-09 14:13:01 · 4076 阅读 · 2 评论 -
Touch.js应用
Touch.js应用基本事件tap(单击)doubletap(双击)rotate(旋转)swipe(滑动)drag(拖拽)基本语法 touch.on('选择器','事件',fn)原创 2017-03-16 19:20:19 · 483 阅读 · 0 评论