
js
文章平均质量分 73
山西仓江科技有限公司
这个作者很懒,什么都没留下…
展开
-
从js 事件循环来看 setTimeout 与 promise
从这段代码的输出来看两者的关系。原因如下:一个浏览器环境(unit of related similar-origin browsing contexts.)只能有一个事件循环(Event loop),而一个事件循环可以多个任务队列(Task queue),每个任务都有一个任务源(Task source)...原创 2018-06-26 22:18:00 · 1122 阅读 · 0 评论 -
懂点设计模式
learn《javascript 设计模式与开发实践》学习心得单例模式 案例惰性单例是单例模式的重点,是指在需要的时候才创建实例创建对象和管理单例的指责分布在两个不同的方法中 这两个方法组合起来才具有单例模式的威力场景:比方在一个页面中需要初始化化多个我们自己封装的第三方sdk 类创建弹框的dom对象等等策略模式 案例策略模式的目的就是将算法的实现和...原创 2019-01-09 16:51:06 · 414 阅读 · 0 评论 -
Es6 细节
Reflect.ownKeys 和 Object.keys 的区别:Object.keys()无法识别对象Symbol 属性Reflect.ownKeys()可以let obj = { [Symbol('my_key')]: 1, enum: 2, nonEnum: 3};Reflect.ownKeys(obj)// ["enum", "nonEnum", Symb...原创 2019-02-19 21:49:43 · 337 阅读 · 0 评论 -
antd源码解读 之 构建工具antd-tools
antd-tools 作为antd源码中一个重要的构建工具存在 文档相对不是很完善我们来研究下他的源码一探究竟antd 的 package.json 中的scripts(一)prepublish"prepublish": "antd-tools run guard"这调命令涉及到了npm scripts 中的 hook prepublish是 publish 这条命令的 hook意...原创 2019-04-26 22:06:56 · 4427 阅读 · 0 评论 -
nodejs细节篇
node中的核心库1 GYP项目生成工具 一个专有的扩展构建工具node-gyp,这 个工具通过npm install -g node-gyp这个命令即可安装。2 V8引擎C++库 可以实现JavaScript 与C++的互相调用3 libuv库 它是Node自身的动力来源之二 。libuv封...原创 2019-04-19 03:00:25 · 944 阅读 · 0 评论 -
node 正确使用process 结束进程的方式
以下示例说明了 process.exit() 方法的错误用法,该方法可能导致打印到 stdout 的数据被截断和丢失:// 这是一个错误用法的示例:if (someConditionNotMet()) { printUsageToStdout(); process.exit(1);}这是有问题的原因是因为对 Node.js 中的 process.stdout 的写入有时是异步的,...原创 2019-08-05 09:22:43 · 11385 阅读 · 0 评论 -
webpack plugin 透过现象看本质
这是使用 vue-cli 编译过后的输出显示是不是看起来不是很对你的胃口,是不是想改改样式看起来好看点,是不是想输出的内容丰富点,比如编译后的文件详情…1改样式:那么问题来了,如何找到这是在什么地方输出的,以及如何修改它:...原创 2019-07-29 22:25:40 · 1055 阅读 · 0 评论 -
从 generator 函数 到 redux -saga(三)
take实现原理<html> <head> </head> <body> <div id="test">qwe</div> <script> let $btn = document.getElementById("test"); //cha原创 2019-01-01 02:19:23 · 422 阅读 · 0 评论 -
从 generator 函数 到 redux -saga (二)
Thunk 函数的自动流程管理 JavaScript 语言的 Thunk 函数 JavaScript 语言是传值调用,它的 Thunk 函数含义有所不同。在 JavaScript 语言中,Thunk 函数替换的不是表达式,而是多参数函数,将其替换成一个只接受回调函数作为参数的单参数函数。// 正常版本的readFile(多参数版本)fs.readFile(fileName, ...原创 2018-12-31 15:12:43 · 400 阅读 · 0 评论 -
缓存代理 在项目中处理表格数据 ( 废话不多说 直接上代码 )
原创 2018-08-07 09:34:51 · 379 阅读 · 0 评论 -
写一个 符合 promise A+ 规范的 构造函数 MyPromise
promise A+规范promise 是js 异步发展至今的一个时代的产物 js的异步 经过如下历程, 事件监听 回调函数 订阅发布 promise 是一个时下异步 的一个解决方案 其核心设计思想主要概括为以下几点1:所涉及到的设计模式 : 订阅发布模式(观察者模式 ) 状态模式2 :事件循环promise 中的 三个状态分别为pending //进行中...原创 2018-10-29 00:41:13 · 396 阅读 · 0 评论 -
es6 class 跟普通function的区别
es5 中的function 可以用call apply bind 的方式 来改变他的执行上下文 但是class 却不可以 class 虽然本质上也是一个函数 但是 其内(babel)部做了一层代理 来禁止了这种行为限制该函数不能被call 到别的对象 ;再看 class 中静态方法 跟原型方法 的区别我们用如下方式创建一个classbabe...原创 2018-10-23 15:38:16 · 6468 阅读 · 2 评论 -
webpack tapable库中的同步异步钩子 开发一款实用的插件
剧透下我们的插件 empty-webpack-build-detail-plugin 友好的展示编译输出 ,如果您觉得好用 ,可以给个star Webpack本质上是一种串行事件流的机制,它的工作流程就是将各个插件串联起来,实现这一切的核心就是Tapable,webpack中最核心的负责编译的Compiler和负责创建bundle的Compilation都是Tapable的实例comp...原创 2018-11-10 18:56:56 · 1009 阅读 · 0 评论 -
关于js的 链式调用和流程控制 (sleep)
实现下面的函数: new Test("test").firstSleep(3).sleep(5).eat("dinner")//等待3秒 //test//等待5秒//dinner链式调用没什么可说的 return this 就好了 ,此处的sleep 乍一看确实会引发一些思考,关键是异步之后我的this 在哪里 ;那这个时候我就可以创建一个异步队列 ;整...原创 2018-11-10 22:11:27 · 2355 阅读 · 0 评论 -
redux componse 函数中的反向职责链模式的演变
最初的实现方式 核心是 reduceRight 方法 把前一个执行结果 作为下一个的参数执行 function add1(str){ return str+1;}function add2(str){ return str+2;}const componse = (...fns)=>(...args){ let last = fns.pop(); ret...原创 2018-12-02 16:15:57 · 470 阅读 · 0 评论 -
web应用性能优化之 nginx + compression-webpack-plugin
当我们的项目越来越庞大是时候 会发现 即使做了code split 代码压缩 动态加载 等等一系列优化之后 页面的响应速度依旧很慢这个时候时候可以使用compression-webpack-plugin 这个插件new CompressionWebpackPlugin({ //gzip 压缩 filename: '[path].gz[query]', t...原创 2018-12-19 17:16:27 · 3700 阅读 · 0 评论 -
从 generator 函数 到 redux -saga (一)
Generator 函数是 ES6 提供的一种异步编程解决方案教程可查看 阮老师所著es6 用例1,对象转可执行的数组var myIterable = {};myIterable[Symbol.iterator] = function* () { yield 1; yield 2; yield 3;};console.log([...myIterable]);...原创 2018-12-30 18:41:23 · 738 阅读 · 0 评论 -
npm shrinkwrap
什么是 npm shrinkwrap?npm shrinkwrap 是 npm 包管理器的一项功能。可以按照当前项目 node_modules 目录内的安装包情况生成稳定的版本号描述。shrinkwrap 文件的结构类似以下这种形式{ "name": "A", "version": "1.1.0", "dependencies": { "B": { "versi...原创 2019-09-03 20:27:53 · 3170 阅读 · 0 评论