摘要: 前言 之前讲了一些 Promise 的基础知识,这次来捋一捋 Promise 的简单实现吧。 重要点 首先我们要知道 Promise 的几个重要的特性: ① Promise 的参数是一个函数,函数有两个参数,分别为 resolve 和 reject。JS引擎 会自己提供 resolve 和 reje 阅读全文
posted @ 2018-05-25 12:54 jkCaptain 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 前言 Promise 是异步编程的一种解决方案,用类似同步的代码写异步。以前接触过 setTimeout 或 ajax 回调地狱的童鞋应该深有体会。 可以把Promise 想象成一个封闭的状态机,根据异步操作的成功与否,调用不同的回调,并改变Promise对象的状态。异步操作成功时,调用resolv 阅读全文
posted @ 2018-05-19 17:57 jkCaptain 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 前言 Proxy, 也就是代理。设计模式中有一种叫做代理模式,可以用来实现AOP,拦截器。后端经常会用到。 那什么是代理模式,这样说吧。快到5.20了你想追个妹子,可惜没她联系方式,刚好你朋友认识她,你就请你的朋友代理你,捎信给她,表诉你的爱慕之情。就有点像读书那会的送情书。 代理在生活中很常见,董 阅读全文
posted @ 2018-05-10 09:20 jkCaptain 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 前言 正则表达式这东西,工作中其实经常用到,简单的比如验证邮箱、手机号,验证中文,去除首尾空格,复杂的例子有 老款jquery的css选择器引擎 sizzle.js。 对正则一直是一知半解,只会用最基本的,而且还用的懵懵懂懂。感觉精通正则的人跟精通linux shell命令行的人一样,是牛叉哄哄的, 阅读全文
posted @ 2018-05-06 13:18 jkCaptain 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 前言 许多年前,我们引入代码,是直接用 script src引入, 或者自己写一个 loadScript。 用script src方式的话,当项目中js文件多了,页面上会有很多script标签,抛开性能暂且不说,本身代码就非常丑陋,而且很不好维护,尤其是当 js 文件有依赖关系时,更加难以处理。 为 阅读全文
posted @ 2018-04-29 20:38 jkCaptain 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 前言 数组的API在日常开发中,经常会用到。梳理下,当作复习。 ES5 ES5 迭代器方法 ES5迭代器方法的一些日常应用。适用于函数式编程。 ES6 ES7 阅读全文
posted @ 2018-04-21 18:54 jkCaptain 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 1. 对象的方括号语法 方括号中的所有键都将转换为字符串类型,因为JavaScript中的对象只能使用String类型作为键类型。 例如,在上面的代码中,当将键 a 添加到 o 时,JavaScript将调用 a.toString() 方法,并将此结果字符串用作新键。参考 MDN 所以 o[a] - 阅读全文
posted @ 2018-01-01 12:06 jkCaptain 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 首先,vscode安装 Eslint 插件。 打开cmd, 进入到项目目录 然后 安装成功之后,重启 vscode,可看到一个 .eslintrc.js。 如果想自己配置,可以删掉 “extends”选项,去参考官方文档 http://eslint.cn/ 自行配置。 阅读全文
posted @ 2017-12-31 21:38 jkCaptain 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 业余时间做一些题。 Two Sum 第一反应是用双重 for 循环,可是 O(N^2)的复杂度通不过校验,就改成如下方法了,时间复杂度为O(N)。 思路: 1、遍历数组,用 target 减去 nums[i] 得到差值,判断得到的差值是否在剩余的元素中(nums.slice(i+1))。 2、如果差 阅读全文
posted @ 2017-04-05 20:23 jkCaptain 阅读(189) 评论(0) 推荐(0) 编辑