随笔分类 -  JavaScript

摘要:start 基于 koa 2.11 按以下流程分析: app.use() use 方法定义在 中: this.middleware 这就是一个数组,用来存放所有中间件,然后按顺序执行。 app.listen() 这个方法定义在 中: this.callback() this.handleReques 阅读全文
posted @ 2020-02-10 11:23 郭佬 阅读(514) 评论(0) 推荐(0)
摘要:前言 基于 vuex 3.1.2 按如下流程进行分析: Vue.use(Vuex) Vue.use() 会执行插件的 install 方法,并把插件放入缓存数组中。 而 Vuex 的 install 方法很简单,保证只执行一次,以及使用 applyMixin 初始化。 applyMixin 方法定义 阅读全文
posted @ 2020-02-08 18:37 郭佬 阅读(649) 评论(0) 推荐(0)
摘要:前言 javascript 的 this 指向主要是依赖上下文对象决定,箭头函数例外。 默认绑定 在全局作用域下调用函数,函数的 默认指向 。 注意1:严格模式下,默认指向 注意2:全局作用域下 声明的变量会默认绑定到 ,而 、`const`声明的变量不会 隐式绑定 当函数引用有上下文对象时, 隐式 阅读全文
posted @ 2020-01-19 17:32 郭佬 阅读(322) 评论(0) 推荐(0)
摘要:总是把这两个当作同一个模式,但其实是不太一样的,现在重温一下。 观察者模式 观察者直接订阅目标,当目标触发事件时,通知观察者进行更新 简单实现 js class Observer { constructor(name) { this.name = name; } update() { console 阅读全文
posted @ 2019-12-28 15:31 郭佬 阅读(604) 评论(0) 推荐(1)
摘要:前言 最近在做 webapp,遇到了很多移动端兼容的问题,其中一个问题就是:输入框触发 focus 后,键盘弹出,然后遮住了输入框。 然后在 和`IOS`上,这个问题的表现形式不一样,而原生键盘和第三方键盘也不一样,但引起的问题都是一样的:输入框被遮住了。 需要的效果 在键盘弹出时,获得焦点的输入框 阅读全文
posted @ 2019-11-26 16:47 郭佬 阅读(2825) 评论(0) 推荐(0)
摘要:"demo 代码点此" ,webpack4 中通过 "css loader" 开启 css 模块化, 开始前先做点准备工作。 不了解 css 模块化的,可以前往查看 "github_css_modules" . 准备工作 安装 webpack: 创建 webpack.config.js 进行配置: 阅读全文
posted @ 2019-11-10 14:25 郭佬 阅读(2269) 评论(0) 推荐(1)
摘要:strat javascript 的类型转换一直是个大坑,但其实它也减少了代码量。 ToPrimitive Symbol.toPrimitive 是一个内置的 Symbol 值,它作为对象的函数值属性存在,当一个对象转换为原始值时,会调用此函数。 该函数被调用时,会被传递一个字符串参数 hint , 阅读全文
posted @ 2019-08-16 16:32 郭佬 阅读(817) 评论(0) 推荐(0)
摘要:"demo 代码点此" ,webpack4 进行 code splitting 使用 "split chunks plugin" , 开始前先做点准备工作。 start 安装: 创建 webpack.config.js 进行配置: 创建 index.js : 打包终端执行 进行打包,打开 dist 阅读全文
posted @ 2019-07-27 18:46 郭佬 阅读(367) 评论(1) 推荐(0)
摘要:"demo 代码点此" ,如果对 babel 不熟,可以看一下 "babel 7 简单指北" 。 webpack 使用 babel 来打包使用 es6 及以上语法的 js 文件是非常方便的,可以通过配置,将 es6 转化为 es5. start 准备个空文件,执行如下命令: 然后创建一个 dist 阅读全文
posted @ 2019-07-25 15:51 郭佬 阅读(2480) 评论(0) 推荐(0)
摘要:"demo 代码点此" ,篇幅有限,仅介绍几个常用的。 start 什么是 plugins ? While loaders are used to transform certain types of modules, plugins can be leveraged to perform a wi 阅读全文
posted @ 2019-07-24 17:53 郭佬 阅读(1648) 评论(0) 推荐(0)
摘要:"demo 代码点此" ,开始之前,先做点准备工作。 准备工作 准备一个空文件夹,然后执行下列命令: 然后创建一个 dist 目录,并在里面创建一个 indedx.html: 接着创建一个 src 目录,在里面创建一个 lib 文件夹,创建一个 until.js: 再创建 components 文件 阅读全文
posted @ 2019-07-22 18:34 郭佬 阅读(4487) 评论(0) 推荐(0)
摘要:babel 7 对于 babel 7, "babel 的官网" 已经介绍得非常详细了,但有时感觉文档和实际使用总是差那么一点东西。 主要包 先来看一下主要的包,babel 7 对于包进行了一些简化。 "@babel/cli" : 用于执行相应命令 "@babel/core" : 核心包,将 js 代 阅读全文
posted @ 2019-04-22 23:18 郭佬 阅读(657) 评论(0) 推荐(0)
摘要:注意: 以下深拷贝仅针对对象。 对于深拷贝,我平时用得很少,一般都是用 JSON 的方法来实现: 但前几天踩了坑,在网上查了才发现问题,只能说坑只有踩过才知道深浅。 坑 1. 对于 function、undefined,会丢失这些属性。 2. 对于 RegExp、Error 对象,只会得到空对象 3 阅读全文
posted @ 2019-04-16 21:11 郭佬 阅读(2314) 评论(0) 推荐(0)
摘要:JS 数组相关的循环函数,用得挺多,所以有些坑还是要去踩一下,先来看一道面试题。 注意: 下面提到的不改变原数组仅针对基本数据类型。 面试题 模拟实现数组的 map 函数。 心中有答案了吗?我的答案放在最后。 map( callback( cur, index, arr ), thisArg ) m 阅读全文
posted @ 2019-04-09 15:46 郭佬 阅读(919) 评论(0) 推荐(0)
摘要:async await的执行 注意: 本次代码仅在 Chrome 73 下进行测试。 start 不了解 async await 的,先去看阮一峰老师的文章 "async 函数" 。 先来看一道 "头条的面试题" ,这其实是考察浏览器的 event loop. 运行结果如下: Event Loop 阅读全文
posted @ 2019-03-27 22:08 郭佬 阅读(321) 评论(0) 推荐(0)
摘要:redux 记录一下 redux 的一些用法,如果想学习 redux,建议看 "官方文档" ,另外推荐一本 "huzidaha" 写的 "react小书" ,里面讲解了一些 react 和 redux 的原理。 start 运行如下命令,不了解 npx 的,可以看一下 "阮一峰的文章" 。 然后安装 阅读全文
posted @ 2019-03-21 14:44 郭佬 阅读(400) 评论(0) 推荐(0)
摘要:继承 记录一下 javascript 的各种继承方式,个人用得比较多的还是原型链继承和 ES6 的 extends。 原型链继承 缺点: 在创建 Child 的实例时,无法向 Parents 传参 父类里面的引用类型被共享,个例修改导致所有实例都被修改 借用构造函数 为了解决上面的问题 ,经典继承方 阅读全文
posted @ 2019-03-02 16:42 郭佬 阅读(336) 评论(0) 推荐(2)
摘要:原型与原型链 javascript 创建对象 类与构造函数是大多数编程语言所拥有的,而借鉴了 C 与 JAVA 的 javascript 也是有类和构造函数的,不过 javascript 的实现不太一样。 上面的例子中, 就是构造函数, 就是它的实例,但是它对共享性不太好,所以有了原型模式。 原型模 阅读全文
posted @ 2019-02-28 14:41 郭佬 阅读(387) 评论(0) 推荐(0)
摘要:模块化 目前比较流行的 JS 模块化方案有 CommonJS、AMD、CMD 以及 ES6 Module,还有个 UMD 方案。 CommonJS CommonJS 是服务器端的模块化方案,nodeJs 就采用了这种方案。在 CommonJS 规范中,一个文件即一个模块,用 和`exports re 阅读全文
posted @ 2019-02-26 23:15 郭佬 阅读(454) 评论(1) 推荐(0)
摘要:Promise 是 JavaScript 异步编程中的重要概念,是目前较为流行的 JavaScript 异步编程解决方案之一。它最早由社区提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 对象。 Promise 的基本概念 一个 有以下几种状态: pending: 初始状态,既不是成功 阅读全文
posted @ 2019-02-25 21:24 郭佬 阅读(506) 评论(1) 推荐(0)

我终究成长为一个不特别的人