JS
- var有变量提升
- let、const没有变量提升,提前访问会报错
- function函数可以无狗用于止X赋值给变量的函数无法提前调用
js执行
- 全局执行上下文:代码开始执行时就会创建,将他压执行栈的栈底,每个生命周期内只有一份
- 函数执行上下文:当执行一个函数时,这个函数内的代码会被编译,生成变量环境、词法环境等,当函数执行结束的时候该执行环境从栈]顶弹出
- 词法环境: 基于ECMAScript代码的词法嵌套结构来定义标识符和具体变量和函数的关联。一个词法环境由环境记录器和一个可能的引用外部词法环境的空值组成
- 变量环境:变量环境和词法环境的一个不同就是前者被用来存储函数声明和变量(let和const)绑定,而后者只用来存储var变量绑定
- Outer:指向外部变量环境的一个指针
TS
TS与JS比较
ts基础类型
boolean、number、string、undefined、null、any、unknown、void、never、数组类型[]、元组类型tuple
属性修饰符
- public:修饰的属性可以在任意位置访问和修改
- private:修饰的属性是私有属性,私有属性只能在类的内部访问和修改,它的子类也无法访问和修改;它的实例也无法访问
- protect:protect受保护的属性,只能在当前类,和它的子类中访问和修改,但是他们的实例都不能访问
React
优点:
- 快速响应:Fiber
- 组件化:复用性强声明式编程
- 跨平台:只需修改渲染器 缺点:
- 大型应用需要配套学习状态管理、路由工具
- 不适合小型应用,需要用babel 处理
Hook规则&原理
- 只能在React函数中调用hook
- 在React函数组件中或自定义 Hook中调用
- 自定义 Hook必须以use开头
- Hook中的state是完全隔离的