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、数字、null、symbol、bigint、布尔
(其中,复杂的数据类型的初始值可以改变,基础数据类型的初始值无法改变)
JS是怎么执行的
执行上下文:当JS引擎解析到可执行的代码片段的时候,会先做一些准备工作
全局执行上下文:代码开始执行时就会创建,然后将他压入栈底,每个生命周期只有一份
函数执行上下文:当执行一个函数时,函数内代码会被编译,生成环境变量,语法环境等
调用栈:func执行上下文:环境变量→Outer、词法循环、This
创建执行上下文:绑定This、创建词法环境(放函数)、创建变量环境(放var)
JS的进阶知识点
闭包:能够读取其他函数内部变量的函数
垃圾回收:释放垃圾占用的空间,防止内存泄露
事件循环:协调和管理各种异步任务的执行顺序,保证 JavaScript 代码的执行顺序和预期一致。