【颠覆认知的JS】- 1. 发展史、ECMA、编程语言、变量、JS值

72 阅读1分钟

编程语言

什么是编程语言:具有变量,数据结构,函数,运算能力的语言称为编程语言

  • 编译型

  • 移植性差,但快

  • 解释型

  • 移植性强,但慢

JS

  • *ECMAScript

  • 语法, 变量, 关键字, 保留字, 值, 原始类型, 引用类型运算, 对象, 继承, 函数

  • DOM

  • W3C规范

  • 操作html element

  • BOM

  • 无规范, 需要写一些兼容性的东西

  • 滚动条,窗口宽高,事件,事件冒泡捕获,正则等

JS引擎是单线程语言

Q:JS毫无疑问是单线程的,那假如网页中有两个进度条,他们分别受到两个点击事件控制;当触发第一个进度条后再触发第二个会卡死吗?

A:不会。

  1. 虽是单线程,但可以模拟多线程运行

  2. 怎么做到呢?轮转时间片:短时间之内轮流执行多个任务的片段

  3.  任务1 任务2

  4.  切分任务1 任务2

  5.  随机排列这些任务片段,组成队列

  6.  按照这个队列顺序将任务片段送进JS进程

  7.  JS 线程执行一个又一个的任务片段

变量声明:juejin.cn/post/723934…

JS值

  • 基本类型(原始值)

  • All Primitive types are immutable in JS

  • 存储在栈内存

  • Number String``Boolean undefined null BigInt Symbol

  • null有什么用:初始化组件/函数 销毁函数 占位

  • undefined:js唯一系统默认值

  • 引用类型

  • 存储在堆内存

  • object, array, function, RegExp, Date, Set, Map, WeakMap, WeakSet, Proxy, Generator, Proxy/Reflect....