JS历史、浏览器发展、JS基本介绍
目录
一、浏览器发展史
二、ECMA介绍
三、JavaScript基本介绍
前言:为什么要再战JS
-
答:因为学到Vue2发现自己JS基础不太够
-
整个前端开发,JS、HTML、CSS中,JS要占85%,作为前端菜鸡,我深知JS的重要性
-
而整个JS大家庭中(包含框架),Vue、React、Node.js、jQuery等中,原生JS要占85%
-
总结:不学好JS基本上不可能干好前端
一、浏览器发展史
五大主流浏览器
- IE:trident 内核
- chrome:webkit blink 内核
- safari :webkit 内核
- firefox :gecko 内核
- Opera:presto 内核
- (ps:Edge浏览器是微软的但用的是chrome的内核所以不提)
浏览器历史和JS诞生重要年份表
1990年
- 浏览器诞生,李爵士:超文本分享资讯的人,开发了world wide web,后来移植到C语言变成了
lbwww/nexus - 这个技术可以允许别人浏览他人编写的网站
1993年
- 对于前端非常有意义的一年
- 美国伊利诺大学的NCSA组织的一名成员:马克·安德森
- 他开发了Mosiac 浏览器,可以显示图片,这是第一款图形化浏览器,目前市面所有浏览器都被Mosiac所影响
1994年
- 马克·安德森和SGI公司的吉姆·克拉克成立了Mosiac Communication Corporation
- 后因商标侵权,改名为Netscape
- 这一年网景公司发行的Netscape Naigator浏览器 一直流行到2003年
1996年(1)
- 微软收购了Spy glass 拥有了Mosiac公司的商标使用权
- 在Mosiac公司的基础上开发了IE浏览器(Internet exploror)1.0 内核是Mosiac
- 同一年发布了IE3,是浏览器有了脚本Jscript,和JS干的一样的事
1996年(2)
- 网景公司的布兰登在NetScape·Navigator网景导航者的基础上开发了LiveScript脚本语言
- 同一年Java火起来了,网景公司的LiveScript不温不火,于是网景公司和拥有Java的Sun公司合作,共同推广宣传产品,LiveScript变成了JavaScript
2001年
- IE6和Windows XP的诞生,出现了JS引擎
- 原本的浏览器解析JS是在渲染引擎里的,所以性能极差,微软把解析JS的部分从渲染引擎抽离出来,形成了单独的JS引擎
2003年
- Mozila公司发布firefox浏览器
- firefox浏览器的开发是通过Netscape Navigator 发布源码,然后复制了源码而开发出来的
2008年
- google 基于 Webkit Blink 开发了chrome 浏览器
- 后来google公司 为chrome 开发出了 V8引擎(JS引擎)
- Node.js就是基于V8引擎运行的
- V8引擎可以直接翻译机器码
- V8引擎独立于浏览器运行
2009年
- 甲骨文公司Oracle 收购了 Sun公司
- 也就是说JS和Java的所有权都属于甲骨文公司,Java和JavaScript有了同一个妈
二、ECMA
ECMA全称是European Computer Manufactures Association(欧洲计算机制造联合会)
- 总部设立在日内瓦,因为瑞士是永久中立国,比较安全和稳定
- ECMA是评估、开发、认可电信、制定计算机标准的机构
- ECMA-262 是脚本语言的规范(ECMAScript)
- ES5、ES6是规范化脚本语言
编程语言
- 编程语言是高级语言,人能理解但机器不理解
- 机器理解0和1,所以需要把高级语言翻译成机器能理解的语言
- 编程语言分为编译型语言和解释型语言
编译型语言
- 翻译过程为:源码 -> 编译器 -> 机器语言 -> 可执行的文件
- 编译型语言需要跨平台移植,但相比于解释型语言运算速度要快些,所以它更适合做大型项目的开发
解释型语言
- 翻译过程为:源码 -> 解释器 -> 解释一行执行一行
- 解释型语言不需要根据不同系统平台进行移植,只要有解释器就能执行
脚本语言
- 脚本语言不光只有前端有,后端也有PHP也属于脚本语言
- 执行方式是通过脚本引擎再给解释器再执行
微软的脚本语言
asp.net
- 微软的小白式开发框架,基本上拖拖拖就能开发网页
- 00年以后很多只做静态展示的公司官网很多都是用asp.net开发的
JScript
- 只支持IE浏览器,凉了很久了,基本没人用
Vbscript
- 语法反人类,用的人也很少了
三、JavaScript基本介绍
三大部分
ECMAScript
- JS里最难的一部分
- 知识点有语法、变量、关键字、保留字、值、原始类型、引用类型、运算、对象、继承等
DOM 文本对象模型
- 全称:document object model
- 遵循W3C的规范
BOM 浏览器对象模型
- 全称:browser object model
- 没有规范,因为市面上浏览器很多,比如IE的规范和V8引擎的规范就不同
关于线程
JS是单线程
- 单线程的特点只能同时运行一个程序(JS引擎)
- 多线程的特点是可以同时运行多个程序
- 但JS也能同时运行多个程序
模拟多线程
- JS可以模拟多线程,通过轮转时间片的方式,短时间内轮流执行多个任务片段
- 比如有任务一和任务二
- JS引擎会切分任务一和任务二
- 随机排流这些任务片段,组成队列
- 按队列顺序将任务片段送进JS线程
- JS线程执行一个又一个的任务片段
- 因为执行间隔人的肉眼无法分辨,所以算模拟多线程