编程语言
什么是编程语言:具有变量,数据结构,函数,运算能力的语言称为编程语言
-
编译型
-
移植性差,但快
-
解释型
-
移植性强,但慢
JS
-
*ECMAScript
-
语法, 变量, 关键字, 保留字, 值, 原始类型, 引用类型运算, 对象, 继承, 函数
-
DOM
-
W3C规范
-
操作html element
-
BOM
-
无规范, 需要写一些兼容性的东西
-
滚动条,窗口宽高,事件,事件冒泡捕获,正则等
JS引擎是单线程语言
Q:JS毫无疑问是单线程的,那假如网页中有两个进度条,他们分别受到两个点击事件控制;当触发第一个进度条后再触发第二个会卡死吗?
A:不会。
-
虽是单线程,但可以模拟多线程运行
-
怎么做到呢?轮转时间片:短时间之内轮流执行多个任务的片段
-
任务1 任务2
-
切分任务1 任务2
-
随机排列这些任务片段,组成队列
-
按照这个队列顺序将任务片段送进JS进程
-
JS 线程执行一个又一个的任务片段
JS值
-
基本类型(原始值)
-
All Primitive types are immutable in JS
-
存储在栈内存
-
NumberString``Booleanundefinednull BigInt Symbol -
null有什么用:初始化组件/函数 销毁函数 占位
-
undefined:js唯一系统默认值
-
引用类型
-
存储在堆内存
-
object, array, function, RegExp, Date, Set, Map, WeakMap, WeakSet, Proxy, Generator, Proxy/Reflect....