当前浏览器过旧,页面样式无法完整呈现。请使用 Chrome、Edge、Firefox 或 Safari 访问。

nodejs 命令行脚手架工具 Commander

commander 中文文档 commander Dome 安装 常用 api .version('x.y.z') 用于设置命令程序的版本号 .option('-n, --name ', 'your name', 'GK') 用来定义带选项的 commander,同时也作为这些选项的文档 第一个参数是选项定义,用|,,,连接 参数可以用<>或者[]修饰,前者意为必须参数,后者意为可选参数 第二个参…

Node.js · 4/28/2019 · 4 分钟阅读

理解 js this 绑定的 6 种规则:默认绑定、隐式绑定(隐式丢失)、显式绑定、new 绑定、严格模式下的 this、箭头函数绑定

默认绑定 隐式绑定(隐式丢失) 显式绑定 new 绑定 严格模式下的 this 箭头函数绑定 默认绑定 this 指向 window 例子 1:在全局环境中,this 默认绑定到 window 例子 2:函数独立调用的时候,this 默认绑定到 window 例子 3:被嵌套函数独立调用的时候,this 默认绑定到 window 例子 4:IIFE 立即执行函数实际上是函数声明后直接调用执行 相当…

JavaScript · 4/27/2019 · 6 分钟阅读

理解 js 的作用域,作用域链,闭包

作用域 作用域就是执行上下文,在执行上下文中会有内存分配与执行两个阶段。变量的的生命周期:声明,初始化,赋值 变量提升 在全局作用域或者函数作用域 var 声明变量允许在声明之前使用,值为 undefined,这个就是变量提升 块级作用域中声明的变量会提升到该作用域的头部,即允许在实际声明前使用 暂时性死区 在全局作用域或者函数作用域 let 或 const 声明变量,只允许在声明之后访问,在作用…

JavaScript · 4/27/2019 · 5 分钟阅读

你想要的 vue 源码分析 · 20

watch 是基于 Watcher 实例实现的,是一个 user watcher,支持不同类型 watcher 的 4 个类型 deep watcher 为了监听对象的子属性的变化,所以在 watch 中设置 deep:true 属性,实际上会 触发 traverse 函数,traverse 函数是对对象做深层遍历,遍历就会触发子对象的 getter,这样就依赖收集,订阅子对象的 watcher,…

Vue 源码 · 4/26/2019 · 4 分钟阅读

你想要的 vue 源码分析 · 19

computed 示例 初始化 computed watcher 实例的构造函数 执行 watcher.depend() 执行 watcher.evaluate() 去求值 computed watcher 依赖的数据变化后会触发 setter 过程,通知所有订阅它变化的 watcher,执行 watcher.update() computed 是什么 computed 实际上是一个 comput…

Vue 源码 · 4/25/2019 · 4 分钟阅读

你想要的 vue 源码分析 · 18

之前有写了 一篇博客 ,给出了,通过数组下标给数组添加元素、修改数组长度或者直接对对象的属性的添加或删除,但是数据没变成响应式解决方法,并且讲解了为什么 vue3.0 不再使用 Object.defineProperty 而使用 Proxy 的实现依赖收集和派发更新原因 ,那么就从源码角度分析下,为什么上述操作对象或者数组,数据没有变成响应式的,但可以通过 Vue.set 或者 this.$set…

Vue 源码 · 4/24/2019 · 6 分钟阅读

你想要的 vue 源码分析 · 17

什么是 tick js 引擎执行过程的运行机制 nextTick 是什么 数据从依赖收集到派发更新用到了 nextTick 机制,数据的变化到 DOM 的重新渲染是一个异步的过程,发生在下一个 tick nextTick 把要执行的任务都推到一个队列中,统一在下一个 nextTick 中执行 数据更改触发渲染 watcher 的 update,渲染 watcher 的 flushScheduler…

Vue 源码 · 4/23/2019 · 4 分钟阅读

理解 js 的数据类型,内存机制,变量引用,垃圾回收,内存泄漏

js 三种数据结构 栈:栈是一种后进先出的数据结构 队列:队列是一种先进先出的数据结构 堆:堆是一种树状结构,类似于书架,只需要知道书的名字就可以直接取出书,也类似于 JSON,每一个 key 都对应一个 value 数据类型 基本数据类型:Undefined,Null,Boolean,Number,String 和 Symbol 引用数据类型:Object,Array,Function 变量的存…

JavaScript · 4/23/2019 · 5 分钟阅读

ES5 和 ES6 对象遍历方法

for...in for...of Object.keys() Object.getOwnPropertyNames() Reflect.ownKeys() Object.getOwnPropertyDescriptors() for...in 遍历可枚举的自由属性或继承的属性,不包括 Symbol 属性 for...of 只能遍历可枚举的自由属性,不能遍历 Symbol 和继承属性 Object…

JavaScript · 4/22/2019 · 2 分钟阅读

ES5 和 ES6 数组遍历方法的使用与实现

常见的数组遍历方法 普通 for 语句 Array.prototype.forEach Array.prototype.map Array.prototype.filter Array.prototype.reduce Array.prototype.some Array.prototype.every Array.prototype.indexOf Array.prototype.lastInd…

JavaScript · 4/22/2019 · 7 分钟阅读

Set、WeakSet、Map、WeakMap

Set Set 是一个构造函数,类似于数组 Set 的成员的值都是唯一的 Set 不会发生类型转换 Set 结构没有键名,只有键值 Set 的操作 去除数组重复成员 去除字符串重复字符 Set 无法去重两个空对象 Set 的属性与方法 Set 的遍历 WeakSet WeakSet 类似 Set,也是不重复的集合,但是 WeakSet 的成员智能是对象, WeakSet 里面的引用,都不计入垃圾回…

JavaScript · 4/21/2019 · 4 分钟阅读

async/await

Promise 只解决了回调场景中的状态处理问题,没有解决回调嵌套问题,也没有解决回调嵌套的可读性问题 async/await 是一个语法糖,本质还是一个 Promise,来解决回调嵌套问题 普通回调嵌套 Promise 回调嵌套 async/await 解决回调嵌套 async 声明回调环境函数 await 是运行等待回调结果中 如何捕获 async/await 的异常 try/catch to…

JavaScript · 4/21/2019 · 2 分钟阅读

Promise 实现红绿灯

Promise 的实例状态变成 Resloved 或者 Rejected,就会触发 then 方法绑定的回调函数 提前解释一些方法或者钩子的含义 apply 、 call 、bind 三者的区别 apply 、 call 、bind 三者都是用来改变函数的 this 对象的指向的; apply 、 call 、bind 三者第一个参数都是 this 要指向的对象,也就是想指定的上下文; call …

JavaScript · 4/21/2019 · 4 分钟阅读

Promise 的基本用法

Promise 是什么 Promise 是异步的一种解决方案 Promise 提供了三种状态:Pending(进行中),Fulfilled(执行态),Rejected(拒绝态) 一旦 Promise 状态被 resolve 或者 reject,就不能再更改状态 Promise 避免了函数的回调,解决了回调场景中的状态处理问题 Promise 没有避免回调嵌套问题,一旦创建一个 Promise 就会…

JavaScript · 4/21/2019 · 5 分钟阅读

Reflect

Reflect 是什么 Reflect 将 Object 明显属于语言内部的方法放在 Reflect 对象上,比如 Object.defineProperty,可以用 Reflect.defineProperty Reflect 对返回值做了处理,Object.defineProperty 遇到无法定义的属性时,会抛出异常,而 Reflect.defineProperty 会返回 false 让 …

JavaScript · 4/20/2019 · 7 分钟阅读

你想要的 vue 源码分析 · 16

当数据发生变化的时候,触发 setter 逻辑,把在依赖过程中订阅的所有观察者,也就是 watcher 都触发他们的 update 过程,这个过程又利用了队列做了进一步的优化,在 nextTick 后执行所有 watcher 的 run,最后执行他们的回调函数 代码块 defineReactive dep.notify() subs.update(); queueWatcher flushSche…

Vue 源码 · 4/19/2019 · 5 分钟阅读

你想要的 vue 源码分析 · 15

响应式对象 getter 相关逻辑就是做依赖收集 首先定义了一个响应式对象,拥有 getter 进行读取数据的监听,在 getter 中会收集当前计算的 Watcher,然后把 Watcher 作为一个订阅者,在数据更改的时候会触发 setter。在 getter 之前会初始化一个 Dep 实例,这个 dep 实例会做依赖收集,Dep 实例是对 Watcher 实例的管理,Wacher 实例定义了…

Vue 源码 · 4/17/2019 · 6 分钟阅读

vue 开发技巧

vue 相关 http 相关 webpack 相关 less 相关 vue 相关 1. vue splice 数组,数据删除了,但是没有 patch 到 dom 中 splice 删除数组,数据确实改变了,但是 dom 没有删除,或者 dom 删除的位置不对 添加一个唯一的 key 当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用“就地复用”策略。如果数据项的顺序被改变,V…

Vue · 4/17/2019 · 8 分钟阅读

已显示 20 / 173 篇文章

也可以浏览:第 7 页全部文章档