文章分类 - JavaScript
摘要:当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。 一个例子 下面用一些代码来解释这个定义。 这段代码基于词法作用域的查找规则,函数bar() 可以访问外部作用域中的变量a。 这是闭包吗? 技术上来讲,也许是。但根据前面的定义,确切地说并不是。我认为最准确地用
阅读全文
摘要:1 原始 原始 事件代理 3 原始 原始 var oUl = document.getElementById("test"); var aLi = oUl.getElementsByTagName('li'); for (var i = 0; i
阅读全文
摘要:tree shaking 只有es6模块才能使用webpack2做静态依赖解析。 因为现在大部分浏览器还不支持es6模块语法,所以我们得下载babel,利用babel对代码进行编译。 正常使用Babel 6来转换,一般设置 。 但是这种方式使用的 插件意味着Babel会将es6模块通过commonJ
阅读全文
摘要:1 类的修饰 修饰器对类的行为的改变,是代码编译时发生的,而不是在运行时。 这意味着,修饰器能在编译阶段运行代码。 修饰器本质就是编译时执行的函数。 修饰器函数的第一个参数,就是所要修饰的目标类。 基本的修饰器 添加静态属性 testable函数的参数target,就是会被修饰的类。 @testab
阅读全文
摘要:为了转用markdown编辑器,原先类似的老文章不再更新,新的往这里写了。 闭包就是在函数中使用的未在函数中定义的但在函数所处上下文有效的变量(标识符)与函数本体的集合。 函数可以记住并访问所在的词法作用域时, 即使函数是在当前词法作用域之外执行, 这时就产生了闭包。 在foo()执行后,通常会期待
阅读全文
摘要:fromJS() 定制转换方式 源码 is 源码 countBy() count() 兼容惰性计算 countBy() 不兼容。 countBy()和count()的区别就是它的返回值是一个对象。 setSize 默认值undefined 插入 insert 向 index 位置插入 value i
阅读全文
摘要:原生js js中的对象 js中的数组 它们的问题在于无法比较对象/数组是否发生了变化。 immutable 与 Object.freeze、const 区别 Object.freeze 和 const 都可以达到防止对象被篡改的功能,但它们是 shallowCopy 的。对象层级一深就要特殊处理了。
阅读全文
摘要:一般公共组件 generate component 写法 一个结合了redux的例子 UI Component 的 Generator。 actionCreators 与 UI 放在了一起, 然后通过 pageName 和 moduleName 来唯一地标识一个模块, 拼装这两个参数作为 actio
阅读全文
摘要:Object.defineProperty的使用 观察者模式 杂 过去的一些写法 现在的一些写法 class Test { constructor(x) { this.x = x; } name() { return 'xx' } hello() { return ; } bye() { retur
阅读全文
摘要:js位运算的运行效率偏低(大概意思就是比你自己手动改都慢,虽然这个快慢比较也是ms级的)。 js默认把整数当做32位处理。 js中的数字默认是有符号的。 10进制转换成2进制 toString() 方法返回指定 Number 对象的字符串表示形式。 2进制转换成10进制 parseInt() 函数将
阅读全文
摘要:树形结构数据 递归 //return一般适用单层纵深遍历 let str = ''; function parseTreeJson(data) { for (let v of data) { str += ; let childs = v.children; if (childs && childs
阅读全文
摘要:名称 作用 ? {0,1} * {0,} + {1,} . 匹配任意单个字符,但是行结束符除外:\n \r \u2028 或 \u2029。如果要匹配包括 \n 在内的任意字符,可以使用[\s\S] \d [0-9] \D [^0-9] \w [A-Za-z0-9_] \W [^A-Za-z0-9_
阅读全文
摘要:可以不再使用Apply去调用函数 ,传递一个参数数组,调用一个函数,并把数组中的每一项拆分成单个参数传递给函数: Math.min push date 合并/复制 数组 把arguments或NodeList转为数组 与解构赋值结合 将字符串转为数组 更新对象 有点像Object.assign 需要
阅读全文
摘要:使用webGL来创建3D程序 使用CSS3来创建3D效果 webGL和CSS3都是使用GPU来实现3D实时渲染,叫硬件渲染。 软件渲染也就是使用canvas API来渲染 3D 的效果。 webGL渲染过程: 3D坐标系统 perspective(透视、景深) perspective的作用是确定物体
阅读全文
摘要:万有引力 任意两个质点有通过连心线方向上的力相互吸引。 该引力大小与它们质量的乘积成正比与它们距离的平方成反比, 与两物体的化学组成和其间介质种类无关。 两个物体之间存在一种引力:
阅读全文
摘要:动量 动量(Momentum)又称线性动量(Linear Momentum)。 在经典力学中, 动量(是指国际单位制中的单位为kg·m/s ,量纲MLT⁻¹)表示为物体的质量和速度的乘积, 是与物体的质量和速度相关的物理量,指的是运动物体的作用效果。 动量也是矢量,它的方向与速度的方向相同。 动量守
阅读全文
摘要:State state(状态)更新会被合并. 不要直接修改 state(状态) 唯一可以分配 this.state 的地方是构造函数。 setState一般是异步的 setState 可能是异步或同步更新,不能依赖他们的值计算下一个state(状态)。 为何setState可能是同步更新 1. se
阅读全文
摘要:假设有个斜平面,物体以一定的速度朝着斜面运动,如何取得反弹速度。 所要做的所有事情就是把整个系统包括物体,包括平面全部旋转的平面, 做完反弹处理后,再旋转回去。 这就意味着,需要旋转斜面,旋转物体的坐标,并且还要旋转物体的速度。 反弹后的速度 把整个系统旋转回去,也就是还原整个系统到初始位置 完整过
阅读全文
浙公网安备 33010602011771号