深入理解JS| 青训营笔记

160 阅读2分钟

前言

今天这节课讲了JS的基本概念、JS是怎么执行的、JS的进阶知识点和课程总结等。

什么是JavaScript

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。

JS的基本概念

诞生:1995年,Brendan Eich开发

  1. 借鉴C语言的基本语法
  2. 借鉴Java语言的数据类型和内存管理
  3. 借鉴Scheme语言,将函数提升到“第一等公民”(first class)的地位
  4. 借鉴Self语言,使用基于原型(prototype)的继承机制

image.png JS的基本模型

image.png JavaScript的线程 image.png JavaScript的语言类型

image.png JavaScript面向对象,函数式

image.png

JS的基本概念-数据类型

image.png

JS的基本概念-作用域

image.png

JS是怎么执行的

首先就是找到源代码,进行词法\语法分析来执行AST并且创建一个执行上下文,然后转换成字节码并逐行解释执行字节码转换成机器码如下图:

image.png

image.png

  • 全局执行上下文:代码开始执行时就会创建,将他压执行栈的栈底,每个生命周期内只有一份。
  • 函数执行上下文:当执行一个函数时,这个函数内的代码会被编译,生成变量环境,词法环境等,当函数执行结束的时候该执行环境从栈顶弹出。 image.png

image.png

image.png

JS的进阶知识点

JS的进阶知识点-闭包

image.png

JS的进阶知识点-this

image.png

JS的进阶知识点-垃圾回收

首先我对这里的理解,我是学过java的GC的所以感觉收回机制都相差不大,如下面老师讲的:

image.png

  • 垃圾标记
  • 对象复制
  • 区域反转

JS的进阶知识点-事件循环

image.png

总结:

今日学习了很多,对之后学习JavaScript奠定了基础,尤其是对JS的垃圾回收期这里理解甚是透彻,老师讲的也不错,课程总结也就是老师最后说的还是比较权威的如下图: image.png