JavaScript我还没学过基础,就把几个重点难点列举一下算了,属于进阶版,而我还在新手村哈哈哈
jsp基本概念
几大进程
- Browser进程
- GPU进程
- 渲染进程
- 插件进程、网络进程。。。
渲染进程还包括:
classDiagram
渲染进程 --|> JS线程
渲染进程 --<| 事件触发线程
渲染进程 --<| GUI线程
渲染进程 --<| 定时器触发线程
渲染进程 --<| 网络线程
(关系图有点奇怪)
数据类型
作用域
全局作用域,函数作用域,块级作用域
在 JavaScript 中,每个函数都会创建一个作用域。作用域中包含了函数内部定义的变量以及其它内部函数的作用域。当一个函数被调用时,JSP 引擎会创建一个执行上下文对象,其中包含了函数的参数、局部变量、作用域链等信息。当函数执行完毕后,执行上下文对象被销毁,其中的变量和函数也会被销毁。
变量提升 var有变量提升 const,let没有变量提升,提前访问会报错
jsp是怎么执行的
执行前的准备工作:执行上下文 全局执行上下文: 代码开始执行时就会创建,将他压执行栈的栈底,每个生命周期内只有一份 函数执行上下文: 当执行一个函数时,这个函数内的代码会被编译,生成变量环境、词法环境等,当函数执行结束的时候该执行环境从栈顶弹出
jsp的进阶知识点
闭包 闭包示例:
function outer() {
var count = 0;
function inner() {
count++;
console.log(count);
}
return inner;
}
var closure = outer();
closure(); // 输出 1
closure(); // 输出 2
closure(); // 输出 3
在这个例子中,outer 函数返回了一个内部函数 inner,并且 inner 函数可以访问 outer 函数中的局部变量 count。当 outer 函数被调用时,它会创建一个 count 变量,并返回 inner 函数。由于 inner 函数是一个闭包,它可以访问 outer 函数中的 count 变量,因此每次调用 closure 函数时(最下面的),count 的值都会增加,并且输出一个新的值。
this
垃圾回收