深入理解JS

101 阅读2分钟

JS 的基本概念

使用Visual Studio Code:

1.左上角“file”创建一个新文件“new text file”2.

2.右下角“plain text”更改文件类型,选择html

语法:

alert():弹出警告框
console():显示js和dom对象信息的单独窗口

变量:

var 变量名="*"

常量:

console=*;(后续无法改变)

特点:

js不是纯解释语言,是经过编译的,执行之前会生成上下文
单线程,但在Render进程里面有多个线程
(进程是应用程序的启动实例,进程拥有代码和打开的文件资源、数据资源、独立的内存空间。比如打开idea,就是打开了一个进程。线程是操作系统进行调度的基本单位,当在idea写代码,相应的就是线程)
JS线程与DUI线程互斥,执行大量计算任务会导致页面卡顿
基础数据类型存在栈上,复杂数据类型存在堆上
动态,弱类型(动态语言/弱类型语言:定义时不需要指定类型,在运行时才确定数据类型的语言)
面向对象,函数式(纯函数:在不同时间点输入数据,结果相同)
解释类语言,JIT
安全,性能差
运行在客户端

添加javas的三种方法

内部:<script>
        //your javascript
      </script>
外部:<script src=“script.js”></script>
内连:<button>
        onclick="createParagraph()">
        Click me
      </button>

JS的数据类型

对象(复杂数据类型:存储的是数据的地址):数组、函数。。。
基础类型:字符串、undefined、数字、nullsymbolbigint、布尔
(其中,复杂的数据类型的初始值可以改变,基础数据类型的初始值无法改变)

JS是怎么执行的 image.png 执行上下文:当JS引擎解析到可执行的代码片段的时候,会先做一些准备工作

全局执行上下文:代码开始执行时就会创建,然后将他压入栈底,每个生命周期只有一份

函数执行上下文:当执行一个函数时,函数内代码会被编译,生成环境变量,语法环境等

调用栈:func执行上下文:环境变量→Outer、词法循环、This

创建执行上下文:绑定This、创建词法环境(放函数)、创建变量环境(放var)

JS的进阶知识点

闭包:能够读取其他函数内部变量的函数
垃圾回收:释放垃圾占用的空间,防止内存泄露
事件循环:协调和管理各种异步任务的执行顺序,保证 JavaScript 代码的执行顺序和预期一致。