理解JS | 青训营笔记

49 阅读2分钟

基本概念

3a304f869251bcca3ec9f0b77ba758e.png

数据类型

对象:数组、函数... 基础类型:字符串、undefined、数字、null、symbol、biglnt、布尔

作用域

  • 变量的可访问性和可见性
  • 静态作用域,通过它就能预测代码在执行过程中如何查找标识符
  1. 全局作用域
var company = "Bytedance" ;

function showCompany(){
console,1og(company);
}

showCompany()
  1. 函数作用域
var company = "Bytedance";

function showCompany(){
  company = "douyin";
  console.log(company);
}

showCompany()
  1. 块级作用域
{
  const company = "Bytedance";
  consloe.log(1,company);
}
console.lpg(2,company);

JS执行

1

当 JS 引擎解析到可执行代码片段(通常是函数调用的时候),就会先做一些执行前的准备工作,这个准备工作,就叫做“执行上下文( execution context 简称EC )”,也叫执行环境。
  • 全局执行上下文: 代码开始执行时就会创建,将他压执行栈的栈底,每个生命周期内只有一份
  • 函数执行上下文: 当执行一个函数时,这个函数内的代码会被编译,生成变量环境、词法环境等,当函数执行结束的时候该执行环境从栈顶弹出。

2

  • 词法环境: 基于 ECMAScript 代码的词法嵌套结构来定义标识符和具体变量和函数的关联。一个词法环境由环境记录器和一个可能的引用外部词法环境的空值组成。
  • 变量环境: 变量环境和词法环境的一个不同就是前者被用来存储函数声明和变量(let 和 const)绑定,而后者只用来存储 var 变量绑定。
  • Outer: 指向外部变量环境的一个指针。

学习感想

  • 作为一个语言,JavaScript 的特点非常突出,它是一种动态类型、弱类型的编程语言,可以用于前端开发、后端开发、移动端开发等多种领域。学习 JavaScript 的过程中,我深深地感受到了它的灵活性和强大的功能,也意识到了它在现代 Web 开发中的重要性。

  • 学习 JavaScript 的过程中,我遇到了很多困难和挑战,例如闭包、异步编程、面向对象编程等等。但通过不断地学习和实践,我逐渐掌握了这些概念和技能,也提高了自己的编程能力。

  • 在学习 JavaScript 的过程中,我也体验到了编程带来的乐趣和成就感。通过编写代码实现功能,我感受到了自己不断进步的过程,也看到了自己所创造的价值。这种乐趣和成就感也激励我不断地学习和探索,不断提高自己的编程水平。