📌 五大主流浏览器及四大内核

1947892-20200224220629695-915027058.png 一发展史/ECMA/编程语言/变量/JS值 - 图2

📌 浏览器的历史JS的诞生

1990年,WorldWideWeb 浏览器发布

Web 之父 Tim Berners-Lee 亲手设计的图形化浏览器还包含一个所见即所得 HTML 编辑器,为了避免同 www(可分享资讯的浏览器)混淆,这个浏览器后来改名为Nexus,意义在于允许浏览他人编写的网站。

1993年 ,Mosaic 浏览器发布

美国伊利诺大学的NCSA组织的马克·安德森发布Mosaic ——“世界上最流行的浏览器”,图形化浏览器,可显示图片

1994年,Netscape 成立

马克·安德森和吉姆·克拉克(SGI美国硅图公司创始人)成立Mosaic communication corporation(马赛克信息交流公司),因Mosaic商标权所属美国伊利诺大学,马克·安德森离开伊利诺大学后,该商标权由大学转让给spy glass公司,致使马克·安德森将公司更名为 Netscape 公司,并发布了第一款商业浏览器 Netscape Navigator(后由网景公司在Mosaic浏览器基础上开发)

1996年,Javascript诞生

微软公司收购spy glass公司,该公司有Mosaic浏览器商品使用权,微软在此基础上发布了IE Internet explorer 1.0,内核使用Mosaic浏览器内核,随之同年发布了IE3,嵌入了脚本语言Jscript(只能用于IE浏览器),目的即为在浏览器端与用户动态交互。
与此同时,网景公司布兰登·艾奇Brendan Eich(Javascript发明人)在Netscape Navigator基础上开发了livescript脚本语言(Javascript前身)。
同年,Java语言(所属SUN Microsystems公司)开始流行,网景公司livescript脚本语言不温不火,便与SUN Microsystems公司达成协议合作宣传推广产品,因此livescript即更名为Javascript。

2001年,XP操作系统诞生IE主导浏览器市场

借助同操作系统的捆绑优势,IE 赢得第一场浏览器之战,市场份额达到95%,IE6诞生出现JS引擎,微软公司率先从浏览器渲染引擎中单独将解析Javascript部分剥离,即为JS引擎,这堪称为Javascript的里程碑。

2003年,mozilla公司Firefox 1.0 推出

网景公司建立了Mozilla Organization(Mozilla组织),尽管基金会主要由网景公司的员工组成,但是理论上,它是独立于网景公司运作的。1998年初Netscape Navigator源代码开源,Firefox 1.0最初版本可以说是直接复制的Netscape Navigator源码,其在测试期间就积累了大量人气的 Firefox 引发了第二场浏览器之战,当年年底,Firefox 已经赢得 7.4% 的市场份额,随后迫于 Firefox 的压力,微软匆匆推出 IE7 应战。

2008年,Google 携 Chrome 参战 V8引擎诞生

Google 基于Webkit Blink gears内核发布了他们自己的Chrome浏览器,搭载了第一个版本的V8引擎,其使用C++开发,可直接翻译机器码,并且使用了如内联缓存(inline caching)等方法来提高性能,JavaScript程序在V8引擎下的运行速度媲美二进制程序,V8可以独立运行,也可以 嵌入 到任何C++应用程序。

2009年,JS所有权归甲骨文公司(oracle)

2009年4月20日甲骨文以现金收购SUN Microsystems公司,JavaScript是甲骨文公司的注册商标。

📌 欧洲计算机制造商协会(European Computer Manufacturers Association)

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScriptJScript,所以它可以理解为是JavaScript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展。
ECMAScript是由网景的布兰登·艾克开发的一种脚本语言的标准化规范;最初命名为Mocha,后来改名为LiveScript,最后重命名为JavaScript。

  • 1996年11月,网景公司将JavaScript提交给欧洲计算机制造商协会进行标准化。
  • ECMA-262的第一个版本于1997年6月被ECMA组织采纳
  • ECMA Script是ECMA-262标准化的脚本语言的名称


📌 编程语言

计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。

  • 编译型语言:源程序针对特定平台一次性编译后即可在该平台运行,运行速度快
  • 解释型语言:运行期间通过解释器**一行行动态翻译和执行,跨平台性好**
  • 脚本语言:脚本语言是一种解释性的语言,无需编译,可以直接用


📌 变量

变量就是一个容器,是内存的一块空间,用于保存数据

  1. var a; //变量声明
  2. a = 1; //变量赋值
  3. var a = 2; //变量声明并赋值

变量的命名规范

  • 由字母、数字、_、$ 组成
  • 变量名必须有意义,严格区分大小写
  • 不能以数字开头,不能是关键字,保留字,不要直接使用name作为变量名


单一var 模式 只使用一个var **在函数顶部进行变量声明是一种非常有用的模式**

  • 提供一个单一的地址以查找到函数需要的所有的局部变量
  • 防止出现变量在定义之前就被使用的逻辑错误
  • 帮助牢记要声明变量,以尽可能少地使用全局变量
  • 更少的编码 ,无论是输入代码还是传输代码都更加少了 ```javascript var a = 123,
    1. b = "abc",
    2. obj = {},
    3. i,
    4. j;
    5. //函数体 ···

function updateEelement(){ var el = document.getElementById(“result”), style = el.style;

//使用el和style再做其他事情…. } ```

📌 JavaScript的值

  • 基本类型——>原始值(永久保存,不可改)——>值存储在栈内存Stack
  • Number 数字
  • String 字符串
  • Boolean 布尔值
  • undefined 未被定义
  • null 空值,不存在
  • Symbol

  • [x] 复杂类型——>引用值——>值存储在堆内存Heap,栈内存存储的是堆内存数据的地址

  • Object 对象
  • Array 数组
  • Function 函数
  • RegExp 正则
  • Date 日期