React-components 组件渲染核心数据驱动视图 react的视图是由数据驱动的 基于 props 的单向数据流指的就是当前组件的 state 以 props 的形式流动时,只能流向组件树中比自己层级更低的组件。 比如在父-子组件这种嵌套关系中,只能由父组件传 props 给子组件,而不能反过来。 组建通信使用基于 Props 的单向数据流串联父子、兄弟组件;利用“发布-订阅”模式驱动 React 数据在任意组件间流动。 2021-07-07 React
react-lifecyles 组件的生命周期mount:consructorstatic getDerivedStateFromProps()rendercomponentDidMount update:static getDerivedStateFromProps()shouldComponentUpdate()render()getSnapshotBeforeUpdate()componentDidUpdate() ren 2021-07-06 React
react-jsx jsx的本质| JSX 是 JavaScript 的一种语法扩展,它和模板语言很接近,但是它充分具备 JavaScript 的能力 jsx 如何编译成js123456789// jsx 语法文件<div className='test'> <p>123</p> </div>// babel 转义之后的js文件React.cre 2021-07-05 React
designmode 简单工厂模式12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364// 简单工厂模式 不同类型// 将创建对象的过程封装var Dog = function () {};Dog.prototype 2020-09-23 设计模式
inherit 经典继承借用构造函数 12345678910111213141516171819202122232425// 经典继承function Super(name){ this.name = name; this.colors = ['red', 'green', 'white'];}Super.prototyp 2020-09-10
chromev8 编译器编译型语言在程序执行之前需要先经过编译,将其编译为机器可以理解的二进制文件,c/c++ go编译过程: 源代码——>词法分析、语法分析->AST->生成中间代码->代码优化->二进制文件->执行 解释器解释型语言需要每次在运行时都对程序进行动态解释再执行 编译过程: 源代码——>词法分析、语法分析->AST->字节码->解 2020-08-08 browser
garbageCollection 栈中垃圾回收记录当前执行上下文状态的指针称为ESP JavaScript引擎通过向下移动ESP来销毁该函数保存在栈中的执行上下文 堆内存中的垃圾回收代际假说:(The Generational Hypothesis)1.大部分对象在内存中的时间很短,简单来说,就是很多对象一经分配内存,很快就变得不可访问;2.不死的对象,活的更久 v8引擎会把堆分成新生代和老生代两个区域,新生代放置生存时间短的(大 2020-07-27
store of data 栈内存与堆内存如何存储数据值类型的数据通常保存在栈中,栈空间用来保存执行上下文引用类型的数据通常保存在堆中,并且在栈中留下引用 栈空间需要用来维护程序执行期间执行上下文的状态,为了提高执行上下文的切换效率,栈的空间一定要相对来说较小 闭包的内存模型12345678910111213141516171819function foo() { var myName = " 极客 2020-07-23
understand this & scope chain this执行上下文中除了变量环境、词法环境、outer还有this,this是和执行上下文绑定的在对象内部方法中使用对象内部的属性。作用域链与this是2个独立的不同的系统 判断要数this 的绑定和函数声明的位置无关,只取决于函数的调用方式,看它真实的调用的对象. 12345678910function foo(){ var a = 1; bar(); // Referen 2020-07-22
lexicalspcope & 闭包 作用域链每个执行上下文中的变量环境中都包含了一个外部应用,用来指向外部引用,我们称之为outer 123456789function bar() { console.log(myName)}function foo() { var myName = " 111 " bar()}var myName = " 22 2020-07-21