【JS2+TS|青训营笔记】

35 阅读2分钟

2.JS怎么执行的

源代码经过词法分析语法分析去到AST或者执行上下文,进入AST转为字节码然后经过编译执行(优化代码)转变为机器码或经逐行解释执行机器码。

执行上下文:当JS引擎解析到可执行代码片段(通常是函数调用)的时候,就会先做一些执行前的准备工作,这个准备工作就叫做“执行上下文”也叫执行环境。

有三种的执行上下文:

全局执行上下文,代码开始创建时就会创建,将它压执行栈的栈道,每个生命周期只有一份

函数执行上下文,当执行一个函数时,这个函数内的代码会被编译,生成变量环境,词法环境等,当函数执行结束的时候该执行环境从栈顶弹出

Eval执行上下文,

调用栈用于放各种执行上下文,不要太深的递归,用迭代法

创建执行上下文:绑定this,创建词法环境,创建变量环境

3.JS的进阶知识点: 闭包;This;垃圾回收

TypeScript

是JavaScript的超集,用于解决大型项目的代码复杂性,包含JS

强类型,支持静态和动态类型,可以在编译期间发现并纠正错误,不允许改变变量的数据类型

类型安全,下一代JS特性,具有完善的工具链(不仅是一门语言,还是一个生产力工具)

  1. TS基础

基础类型:boolean,number,string/undefined,null/any,unknown,void/never/数组类型,元祖类型

基础函数:TS定义函数类型时要定义输入参数类型和输出类型(输出参数,输出参数,函数重载)

Interface:是为了定义对象类型(可选属性,只读属性,可以描述函数类型,可以描述自定义属性)

类:写法与JS差不多,增加了一些定义(增加了public,private,protected修饰符,抽象类,interface约束类,使用implements关键字)