JavaScript之邂逅 (一):认识编程语言及其历史、JS的历史、JS的分类、JS运行引擎、JS应用场景

跳转目录🚀

篇章知识点
JavaScript之邂逅 (一)认识编程语言及其历史、JS的历史、JS的分类、JS运行引擎、JS应用场景
JavaScript之基本语法 (二)JS的编写方式、noscript元素的使用、JS的注意事项、JS交互方式、JS语句和分号、JS注释方式
JavaScript之变量与数据类型 (三)认识JavaScript变量、变量的定义和规范、数据类型和typeof、常见的数据类型、数据类型的转换
JavaScript之常见的运算符 (四)运算符和运算元、算数运算符、赋值运算符、自增和自减、比较运算符、运算符优先级
JavaScript之分支语句与逻辑运算符 (五)if分支语句、if分支语句、if…else if…else…语句、三元运算符、逻辑运算符、switch语句
JavaScript之循环语句 (六)认识循环语句、while 循环、do……while 循环、 for 循环、 break与continue关键字
JavaScript之函数 (七)认识JavaScript函数、函数的声明和调用、函数的递归调用、局部和全局变量、函数表达式的写法、立即执行函数使用
JavaScript对象 (八)对象类型的使用、值类型和引用类型、函数的this指向、工厂方法创建对象、构造函数和类、new创建对象
JavaScript之常见内置类 (九)认识包装类型、数字类型Number、数学类型Math、字符串类型String、数组Array使用详解、Date类型的使用

1. 计算机语言与编程语言

1.1 计算机语言

  • 计算机语言(computer language) :指用于人与计算机之间通讯的语言,是人与计算机之间传递信息的介质。但是其概念比通用的编程语言要更广泛
  • 我们接触了哪些计算机语言: 在之前我们学习了HTML和CSS的很多相关知识,HTML它是一种标记语言,CSS它是一种样式语言,同时它们也是计算机语言,帮助我们人和计算机进行交流要学习的语言。但是它们不属于编程语言

网页的三大组成HTML、CSS之外还有另外一个核心组成=>JavaScript,同样JS必然也是一种计算机语言

在这里插入图片描述

1.2. 编程语言

  • 编程语言(英语:programming language) :是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令,一种能够让程序员准确地定义计算机所需要使用数据的计算机语言,并精确地定义在不同情况下所应当采取的行动。
  • 现在我们可能暂时很难理解,首先我们总结一下编程语言的特点
    1. 数据和数据结构
    2. 指令及流程控制
    3. 引用机制和重用机制
    4. 设计哲学

备注:如果没法理解,先不要纠结专业的定义

1.2.1 常见的编程语言

在这里插入图片描述

1.2.2 编程语言的发展历史 – 机器语言

  • 阶段一:机器语言
    1. 二进制编码也称机器码:即由数字0和1按照一定的规律组成的代码,在计算机中的存储单元中只有0和1两种状态,计算机只能读懂由数字0和1组成的代码。
    2. 机器指令:一定长度的机器码组成
    3. 机器语言:即用这些机器指令所编写的程序

在这里插入图片描述

  • 机器语言的优点
    1. 代码能被计算机直接识别,不需要经过编译解析
    2. 直接对硬件产生作用,程序的执行效率非常高
  • 机器语言的缺点
    1. 程序全是些0和1的指令代码,可读性差,还容易出错
    2. 不易编写(目前没有人这样开发)

1.2.3 编程语言的发展历史 – 汇编语言

  • 阶段二:汇编语言

    • 为了解决机器语言的缺陷,人们发明了汇编语言。用符号代替冗长的、难以记忆的0、1代码。(mov/push指令,经过汇编器,汇编代码再进一步转成0101)
      在这里插入图片描述
  • 汇编语言的优点

    1. 像机器语言一样,可以直接访问、控制计算机的各种硬件设备
    2. 占用内存少,执行速度快
  • 汇编语言的缺点

    1. 不同的机器有不同的汇编语言语法和编译器,代码缺乏可移植性,也就是说,一个程序只能在一种机器上运行,换到其他机器上可能就不能运行;
    2. 符号非常多、难记,即使是完成简单的功能也需要大量的汇编语言代码,很容易产生BUG,难于调试
  • 应用场景:操作系统内核、驱动程序、单片机程序;

1.2.4 编程语言的发展历史 – 高级语言

  • 阶段三:高级语言
    • 高级语言更接近自然语言,更符合人类的思维方式
    • 跟和人交流的方式很相似, 但是大多数编程语言都是国外发明的, 因为都是接近于英文的交流方式
  • 高级语言的优点
    1. 简单、易用、易于理解,语法和结构类似于普通英文
    2. 远离对硬件的直接操作,使得一般人经过学习之后都可以编程,而不用熟悉硬件知识
    3. 一个程序还可以在不同的机器上运行,具有可移植性
  • 高级语言的缺点
    1. 程序不能直接被计算机识别,需要经编译器翻译成二进制指令后,才能运行到计算机上
    2. 种类繁多:JavaScript 、 C语言、C++、C#、Java、Objective-C 、Python等.

1.2.5 总结

  • 现在我们开始学习的就是一门高级语言:JavaScript
    在这里插入图片描述

3. JavaScript的历史

3.1 认识 JavaScript

  • 在维基百科上JavaScript的定义
    • JavaScript(通常缩写为JS)是一种高级的、解释型的编程语言;
    • JavaScript是一门基于原型、头等函数的语言,是一门多范式的语言,它支持面向对象程序设计,指令式编程,以及函数式编程
  • 我们暂时只需要知道
    • JavaScript是一门高级编程语言, 是前端开发的重要组成部分!
    • HTML和CSS也是前端开发的重要组成部分, 而JavaScript是前端开发的灵魂

3.2 JavaScript的起源与发展历史

3.2.1 JavaScript的起源(一)

  1. 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版,这是历史上第一个比较成熟的网络浏览器,轰动一时。
  2. 但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。
  3. 网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。
    在这里插入图片描述

3.2.2 JavaScript的起源(二)

  1. 网景公司当时想要选择一种语言来嵌入到浏览器中, 采用现有的语言,比如Perl、Python、Tcl、Scheme等等, 允许它们直接嵌入网页
  2. 1995年网景公司招募了程序员Brendan Eich,希望将Scheme语言作为网页脚本语言的可能性
  3. 1995年Sun公司将Oak语言改名为Java,正式向市场推出,并且Java推出之后立马在市场上引起了轰动,Java当初有一个口号:“write once run anywhere”;
  4. 网景公司动了心,决定与Sun公司结成联盟,希望将Java嵌入到网页中来运行
  5. Brendan Eich本人非常热衷于Scheme,但是管理层那个时候有点倾向于Java,希望可以简化Java来适应网页脚本的需求
    在这里插入图片描述

3.2.3 JavaScript的历史(三)

  1. 但是Brendan Eich对此并不感兴趣,他用10天时间设计出来了JavaScript,
  2. 最初这门语言的名字是Mocha(摩卡)
  3. 在Navigator2.0 beta版本更名为LiveScript
  4. 在Navigator2.0 beta 3版本正式重命名为JavaScript,当时是为了给这门语言搭上Java这个热词;
  5. 语言当时更像是一个多种语言的大杂烩,借鉴了很多语言的特点。
    • 借鉴C语言的基本语法;
    • 借鉴Java语言的数据类型和内存管理;
    • 借鉴Scheme语言,将函数提升到"第一等公民"(first class)的地位;
    • 借鉴Self语言,使用基于原型(prototype)的继承机制。

3.2.4 JavaScript的起源(四)

  1. 微软公司于1995年首次推出Internet Explorer,从而引发了与Netscape的浏览器大战
    • 微软对Netscape Navigator解释器进行了逆向工程,创建了JScript,以与处于市场领导地位的网景产品同台竞争;
    • 这个时候对于开发者来说是一场噩耗,因为需要针对不同的浏览器进行不同的适配;
  2. 1996年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准
    • 1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262;
    • ECMA-262是一份标准,定义了ECMAScript;
    • JavaScript成为了ECMAScript最著名的实现之一;
    • 除此之外,ActionScript和JScript也都是ECMAScript规范的实现语言;
  • 所以说,ECMAScript是一种规范,而JavaScript是这种规范的一种实现。

4. JavaScript的组成

  • JavaScript的组成ECMAScriptDOMBOM
    1. ECMAScript是JavaScript的标准,描述了该语言的语法和基本对象。下图为ECMAScript的发展历程。
      在这里插入图片描述

    2. DOM操作和BOM操作,让我们对页面和浏览器进行各种操作

在这里插入图片描述

5. JavaScript运行引擎

5.1 浏览器引擎 browser engine

  • 浏览器内核 也称为 浏览器的排版引擎(layout engine)浏览器引擎(browser engine)页面渲染引擎(rendering engine)样版引擎
  • 不同浏览器有不同的内核组成
    1. Gecko:早期被Netscape和Mozilla Firefox浏览器浏览器使用;
    2. Trident:微软开发,被IE4~IE11浏览器使用,但是Edge浏览器已经转向Blink;
    3. Webkit:苹果基于KHTML开发、开源的,用于Safari,Google Chrome之前也在使用;
    4. Blink:是Webkit的一个分支,Google开发,目前应用于Google Chrome、Edge、Opera等

5.2 认识JavaScript引擎

  • JavaScript代码由JavaScript引擎来执行:因为我们需要JavaScript引擎帮助我们将JavaScript代码翻译成CPU指令来执行。
    • CPU只认识自己的指令集,实际上是机器语言,才能被CPU所执行。
    • 我们编写的JavaScript属于高级的编程语言需要转成最终的机器指令来被CPU执行的。
  • 常见的JavaScript引擎
    1. SpiderMonkey:第一款JavaScript引擎,由Brendan Eich开发(也就是JavaScript作者)
    2. Chakra:微软开发,用于IT浏览器
    3. JavaScriptCore:WebKit中的JavaScript引擎,Apple公司开发
    4. V8:Google开发的强大JavaScript引擎,也帮助Chrome从众多浏览器中脱颖而出
      在这里插入图片描述

5.3 浏览器内核和JS引擎的关系

  • 以WebKit为例,WebKit事实上由两部分组成的

    1. WebCore:负责HTML解析、布局、渲染等等相关的工作;
    2. JavaScriptCore:解析、执行JavaScript代码
      在这里插入图片描述
  • 在小程序中编写的JavaScript代码就是被JSCore执行的;
    在这里插入图片描述

6. JavaScript应用场景

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值