JavaScript ( JS ) 是一种函数优先的轻量级,解释型或即时编译型编程语言。虽然它是作为开发Web 页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,例如 Node.js、 Apache CouchDB 和 Adobe Acrobat。
JavaScript 是一种基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
ECMA简介
European Computer Manufactures Association(欧洲计算机制造商协会),这个组织的目标是评估、开发和认可电信和计算机标准。
JavaScript 的标准是 ECMAScript 。截至 2012 年,所有的现代浏览器都完整的支持 ECMAScript 5.1,旧版本的浏览器至少支持 ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了 ECMAScript 的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为 ECMAScript 6 或者 ES6。自此,ECMAScript 每年发布一次新标准。
JavaScript三大块
- ECMAScript,遵循ECMA-262规范
- DOM Document Object Model,遵循 W3C规范
- BOM Browser Object Model, 没有规范
编程语言
一个编程语言必不可少的要素:变量(variable)、数据结构、函数、运算能力
变量:一个容器,存储数据,以便后续使用
- 变量声明:var a,向系统申请一个存储空间,存储空间命名为a
- 变量赋值:a = 2,在存储空间中存值
- 变量声明并赋值 var a = 2
数据结构:原始值(Number、String、Boolean、undefined、null)、引用值(object、Array、Function、Date、RegExp)
1.编译型
源码 -> 编译器 -> 机器语言 -> 可执行文件
静态语言 -> 编译型语言 -> 强类型语言
2.解释型
源码 -> 解释器 -> 解释一行执行一行
动态语言 -> 脚本语言 -> 解释型语言 -> 弱类型语言
优点:不需要根据不同的系统平台进行移植
JS显然是解释型语言。
脚本语言
必须要有脚本引擎,然后通过脚本引擎的解释器解析以后才能正常运行。
如:JavaScript(客户端脚本)、PHP(服务端脚本)
JS单线程模拟多线程
轮转时间片:短时间内轮流执行多个任务的片段
步骤:
- 有任务1和任务2
- 对2个任务进行切分
- 随机排列这些任务片段,组成队列
- 按照这个队列顺序将任务片段送进JS进程
- JS线程执行一个又一个的任务片段
脚本块与脚本块之间,错误是相互不影响的