JavaScript 设计模式 (四) 生成器(建造者)模式 Builder pattern

2020-01-06
阅读 3 分钟
1.7k
定义 生成器模式是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 个人理解 可以看做想要用台式机玩游戏,你可以直接买现成的,也可以买好各种零件自己搭配,也可以买了现成的再改装 流程图 代码示例 {代码...} 优缺点 你可以分步创建对象, 暂缓创建步骤或...

JavaScript 设计模式 (三) 抽象工厂模式 Abstract factory pattern

2020-01-02
阅读 4 分钟
1.9k
定义 抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象,(例如:同属于一个品牌) 而无需指定其具体类。 个人理解 我有很多套方案,但是只要其中一套的某个或者某几个东西,并且它们是配套的(有一样的关联关系在里面),而且我并不关心具体怎么来的; 如果之前看过工厂方法模式,那么可以把这个看做工厂方法模式外...

JavaScript 设计模式 (二) 工厂方法模式 Factory method pattern

2019-12-30
阅读 4 分钟
2.4k
前言 第一篇是读书笔记,本篇开始的具体设计模式会参考维基百科对于二十三种著名GoF设计模式的解释 有理解不到位的,或者错误的地方欢迎在文章下方留言 定义 定义:一个用于创建对象的接口,但是让子类决定实例化哪个类。工厂方法允许一个类延迟实例化它使用的子类。 示例 在创建类时经常遇到需要创建类似的但不完全一样的...

JavaScript 设计模式 (一) 基础知识介绍

2019-12-25
阅读 1 分钟
896
前言 读书笔记 什么是设计模式 定义: 可复用的解决方案,用于解决软件设计中遇到的常见问题 好处: 已经验证,十分可靠 容易复用,可以通过修改解决自己的实际问题 模式都有自己的结构和解决方案的一系列词汇,在向其他人描述时,表达更清晰有效 在代码结构上花费的时间较少,可以有更多的时间关注整体的质量,且减小代码重构的...

Vue 项目添加 TypeScript 支持

2019-12-23
阅读 2 分钟
9.4k
前言 如果原有项目 webpack 版本低于 4 ,建议直接用 vue-cli 新建项目然后把项目文件迁移过去 原有项目添加 TypeScript 添加 TypeScript 及代码检查 {代码...} 初始化 TypeScript 及代码检查配置 详细配置 TypeScript Tslint 注: 推荐使用 Eslint 进行代码检查,这里是因为我操作的项目eslint 版本较低不支持 ts 代码检查...

编写可维护的 JavaScript 代码 -- 编程风格,编程实践 读书笔记

2019-12-23
阅读 6 分钟
2.1k
编程风格 基本格式化 4空格缩进 不省略分号(在原生及使用工具函数的情况不建议省略,在使用比较完善的框架如vue或者自己配置好 webpack 时可以省略) 1行代码长度不超过80个字符(个人比较推荐,毕竟编辑器的自动换行有时真的很难受) 运算符后换行,换行后增加2个缩进单位(变量赋值换行,变量保持和上一行等号右侧第一个变量对...

代码风格统一之代码自动格式化

2019-06-21
阅读 1 分钟
3.1k
目标 保存时自动格式化 保存时不能自动格式化,使其自动格式化 注意事项 项目是使用 npm 或 yarn 可以自己配置 ESLint 实现代码风格统一 安装 ESLint 安装ESLint {代码...} 配置 ESlint 有两部分需要配置,一部分是项目的配置文件,一部分是 vscode 的配置 配置 vscode 实现保存自动格式化代码风格 在安装好 vscode 的 E...

限制 input 输入框只能输入xxx

2019-06-16
阅读 1 分钟
7.2k
限制 input 输入框只能输入xxx 使用 onkeyup 事件,有 bug ,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母 使用 onchange 事件,在输入内容后,只有 input 丧失焦点时才会得到结果,并不能在输入时就做出响应 使用 oninput 事件,完美的解决了以上两种问题,测试暂时还没有出现其它问题。 原理就是...

使用 Nuxt.js 快速搭建服务端渲染(SSR) 应用

2019-03-13
阅读 3 分钟
5.2k
Nuxt.js 官方提功了两种方法来进行项目的初始化,一种是使用Nuxt.js团队的脚手架工具 create-nuxt-app ,一种是根据自己的需求自由配置 使用脚手架适合新手,对 nodejs 后台框架有所了解;按照自己需求自由配置,需要对如何配置 webpack 以及 nodejs 后台框架有所了解。 两种方式比较下就是原生和插件的区别。

[ JavaScript ] 数据结构与算法 —— 链表

2019-02-19
阅读 5 分钟
1.5k
本篇主要有三部分 什么是链表 链表的实现 链表的变种 源码地址:[链接] 另外,今天2019年2月18日上午发现 2048-vue 版,代码版本不对,且最新版本遗失,无奈只得重新修复了下 2048-vue地址: [链接] 什么是链表 链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本...

[ JavaScript ] 数据结构与算法 —— 队列

2019-01-31
阅读 3 分钟
1.5k
前言 JavaScript是当下最流行的编程语言之一,它可以做很多事情: 数据可视化(D3.js,Three.js,Chart.js); 移动端应用(React Native,Weex,AppCan,Flutter,Hybrid App,小程序); 服务端(Express.js,Koa2); 桌面应用(Electron,nw.js); 游戏,VR,AR(LayaAir,Egret,Turbulenz,PlayCanvas); 等等。。。 而且目前大部分编程...

[ JavaScript ] 数据结构与算法 —— 栈

2019-01-30
阅读 4 分钟
1.7k
前言 JavaScript是当下最流行的编程语言之一,它可以做很多事情: 数据可视化(D3.js,Three.js,Chart.js); 移动端应用(React Native,Weex,AppCan,Flutter,Hybrid App,小程序); 服务端(Express.js,Koa2); 桌面应用(Electron,nw.js); 游戏,VR,AR(LayaAir,Egret,Turbulenz,PlayCanvas); 等等。。。 而且目前大部分编程...

[ 逻辑锻炼] 用 JavaScript 做一个小游戏 ——2048 (详解版)

2019-01-20
阅读 8 分钟
5.3k
前言 这次使用了 vue 来编写 2048,主要目的是温习一下 vue。 但是好像没有用到太多 vue 的东西,==! 估计可能习惯了不用框架吧 之前由于时间关系没有对实现过程详细讲解,本次会详细讲解下比较绕的函数 由于篇幅问题简单的函数就不做详解了 代码地址: [链接] 实现功能 数字合并 当前总分计算 没有可移动的数字时不进...

[ 逻辑锻炼] 用 JavaScript 做一个小游戏 ——2048 (初级版)

2019-01-16
阅读 5 分钟
4k
前段时间发现网上有很多收费或公开课都有教用 js 做 2048 小游戏的,然后自己就也想动手做一个,做这个小游戏主要是为了锻炼自己的逻辑能力,也算是对之前一些学习的总结吧

[ webpack4 ] 配置属于自己的打包系统教程(最终篇)—— 环境配置篇

2019-01-03
阅读 7 分钟
6.2k
GitHub 完整配置文件地址: [链接] 由于篇幅过长分三次发布,建议按顺序看[ webpack4 ] 配置属于自己的打包系统教程(一)—— 基础配置篇[ webpack4 ] 配置属于自己的打包系统教程(二)—— 资源配置篇[ webpack4 ] 配置属于自己的打包系统教程(最终篇)—— 环境配置篇 环境配置篇 主要内容 开发环境生产环境分离 实时预览...

[ webpack4 ] 配置属于自己的打包系统教程(二)—— 资源配置篇

2019-01-03
阅读 5 分钟
3k
GitHub 完整配置文件地址: https://github.com/yhtx1997/webpack4-Instance 由于篇幅过长分三次发布,建议按顺序看[ webpack4 ] 配置属于自己的打包系统教程(一)—— 基础配置篇[ webpack4 ] 配置属于自己的打包系统教程(二)—— 资源配置篇[ webpack4 ] 配置属于自己的打包系统教程(最终篇)—— 环境配置篇 资源配置篇...

[ webpack4 ] 配置属于自己的打包系统教程(一)—— 基础配置篇

2019-01-03
阅读 4 分钟
4.8k
GitHub 完整配置文件地址: https://github.com/yhtx1997/webpack4-Instance 由于篇幅过长分三次发布,建议按顺序看[ webpack4 ] 配置属于自己的打包系统教程(一)—— 基础配置篇[ webpack4 ] 配置属于自己的打包系统教程(二)—— 资源配置篇[ webpack4 ] 配置属于自己的打包系统教程(最终篇)—— 环境配置篇 基础配置篇...

[ 造轮子 ] 手动封装 AJAX (三) —— 最终版

2018-12-30
阅读 11 分钟
3k
导言 在开始之前先想一想ajax是怎样的流程 首先打开一个连接 发送数据 返回结果 我们要自定义的设置有哪些 设置请求方式 设置请求头 设置返回数据格式 返回成功后或失败后 我们要做的功能有哪些 数据校验 统一数据的格式 支持文件上传 对于传入参数的容错处理 超时处理 //modify time 2019-01-01 经过以上思考基本结构大...

[ 造轮子 ] 手动封装 AJAX (二) —— ES6 版

2018-12-27
阅读 3 分钟
1.5k
相比前一版本除了使用 ES6 与法外还有以下改动 现在不需要按顺序输入参数 会针对 GET 和 POST 做不同的数据处理 可以自定义设置请求头 增加了参数数据类型的判断 调用代码示例 {代码...} 调用效果图 核心代码没有多少变化,因为只有这一种使用方法 {代码...}

[ 造轮子 ] 手动封装 AJAX (一) —— 基础版

2018-12-26
阅读 2 分钟
1.7k
关于 AJAX 相信都用过,自己动手封装的也肯定有不少,但应该都只是简单的可以请求,不能设置同步异步以及返回的数据格式 兼容低版本 IE5、IE6 可以使用 get 和 post 请求数据 可以设置请求头 需要的思路以及语法都有了,需要小伙伴自己拓展哦 可以设置返回数据格式,不设置为默认 get 请求的数据拼接我没写,有需要的可...

[ ES6 ] 进阶篇(一) —— Promise

2018-12-26
阅读 2 分钟
1.4k
从使用上来说是一种语法糖,会了以后写东西简单一些 Promise 翻译过来就是 承诺 诺言 约定 答应 的意思 那么我是不是可以理解为它答应我会去做某件事,或者约好了会做某事 注:示例代码部分使用 jquery 示例

[ ES6 ] 快速掌握常用 ES6 (二)

2018-12-17
阅读 3 分钟
2.1k
本系列文章适合快速掌握 ES6 入门语法,想深入学习 ES6 的小伙伴可以看看阮一峰老师的《ECMAScript 6 入门》 本篇文章是对之前文章的一个补充,可以使 JavaScript 代码更简洁

[ ES6 ] 快速掌握常用 ES6 (一)

2018-12-12
阅读 3 分钟
3k
本系列文章适合快速掌握 ES6 入门语法,想深入学习 ES6 的小伙伴可以看看阮一峰老师的《ECMAScript 6 入门》 学习 20% 的知识完成 80% 的工作 关于 ES6 稍微介绍下 ES6 吧,详细介绍请自行 baidu 或 Google ES2015 = ES6 ES6 泛指 ES2015、ES2016、ES2017 等等,JavaScript 的下一代标准 现代浏览器支持大部分(90%+)的...