大家好,给大家分享一下js解释器是什么语言写的,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
JavaScript概述
什么是JavaScript
- JavaScript(通常缩写为JS)是一种高级的、解释型的编程语言;它是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。
- 除了HTML和CSS, JavaScript是万维网的核心技术之一Python解释器的安装步骤。JavaScript支持交互式web页面,是web应用程序的重要组成部分。绝大多数网站都使用它,主要的网络浏览器都有专门的JavaScript引擎来执行它。
- 作为一种多范式语言,JavaScript支持事件驱动,功能和命令式(包括面向对象和基于原型)的编程风格。
- 它具有用于处理文本,数组,日期,正则表达式和DOM的API,但语言本身不包含任何I / O,例如网络,存储或图形工具。它依赖于嵌入它的主机环境来提供这些功能。
JavaScript也就是我们常说的JS,或者说是JS脚本。
发展历程
-
1997年7月,ECMAScript 1.0发布。
-
1998年6月,ECMAScript 2.0版发布。
-
1999年12月,ECMAScript 3.0版发布,成为 JavaScript 的通行标准,得到了广泛支持。
-
2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以 Yahoo、Microsoft、Google 为首的大公司,反对 JavaScript 的大幅升级,主张小幅改动;以 JavaScript 创造者 Brendan Eich 为首的 Mozilla 公司,则坚持当前的草案。
-
2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA 开会决定,中止 ECMAScript 4.0 的开发(即废除了这个版本),将其中涉及现有功能改善的一小部分,发布为 ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为 Harmony(和谐)。会后不久,ECMAScript 3.1 就改名为 ECMAScript 5。
-
2009年12月,ECMAScript 5.0版 正式发布。Harmony 项目则一分为二,一些较为可行的设想定名为 JavaScript.next 继续开发,后来演变成 ECMAScript 6;一些不是很成熟的设想,则被视为 JavaScript.next.next,在更远的将来再考虑推出。TC39 的总体考虑是,ECMAScript 5 与 ECMAScript 3 基本保持兼容,较大的语法修正和新功能加入,将由 JavaScript.next 完成。当时,JavaScript.next 指的是ECMAScript 6。第六版发布以后,将指 ECMAScript 7。TC39 预计,ECMAScript 5 会在2013年的年中成为 JavaScript 开发的主流标准,并在此后五年中一直保持这个位置。
-
2011年6月,ECMAScript 5.1版发布,并且成为 ISO 国际标准(ISO/IEC 16262:2011)。到了2012年底,所有主要浏览器都支持 ECMAScript 5.1版的全部功能。
-
2013年3月,ECMAScript 6 草案冻结,不再添加新功能。新的功能设想将被放到 ECMAScript 7。
-
2013年12月,ECMAScript 6 草案发布。然后是12个月的讨论期,听取各方反馈。
-
2015年6月,ECMAScript 6 正式发布,并且更名为“ECMAScript 2015”。这是因为 TC39 委员会计划,以后每年发布一个 ECMAScript 的版本,下一个版本在2016年发布,称为“ECMAScript 2016”,2017年发布“ECMAScript 2017”,以此类推。
语言特点
JavaScript脚本语言具有以下特点:
-
解释性:java是一种解释语言,源代码不需要经过编译,直接在浏览器上运行时被解释。
-
基于对象:javah是一种基于对象的语言,能运用自己已经创建了的对象,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
-
事件驱动:JavaScript可以直接对用户或客户输入做出响应,无需经过web服务程序。他对用户的响应,是以事件驱动的方式进行的,所谓事件驱动,指的是在主页执行了某种操作所产生的动作,此动作称为“事件”。
-
跨平台:JavaScript依赖于浏览器本身,与操作环境无关。只要能运行浏览器的计算机,并支持JavaScript的浏览器就可以正确执行。
- 安全性:JavaScript是一种安全性语言。它不允许访问本地的磁盘,并不能将数据存入服务器上;不允许对网络文本进行修改和删除,只能通过浏览器实现信息浏览或动态交互。可有效的防止数据丢失。
JavaScript能做什么?
- 使网页具有交互性,例如响应用户点击,给用户提供更好的体验
- 可以处理表单,检验用户的输入,并提供及时反馈节省用户时间。例如,表单中要你输入电子邮箱而你却输入一个手机号,那么应该给你一个提醒。
- 还可以根据用户的操作,动态的创建页面。例如,发邮件时,添加附件操作。
- 设置cookie,cookie是存储在浏览器上的一些临时信息,例如你浏览过的网站地址,使用过的用户名
- JavaScript 使有规律地重复的HTML文段简化,减少下载时间。
- 浏览器与服务器进行数据通讯,比如现在最流行的Ajax异步传输;
- 更丰富的界面,可以使用JavaScript来包含诸如拖放组件和滑块之类的项目,以便为您的站点访问者提供丰富的界面。
- 可以制作游戏,微信端小游戏基本都是js写的。
- 基于Node.js技术进行服务器端编程。
举例
这是一个精美的网页,我们可以看到我们鼠标在悬浮于表格,点击按钮时都有各种响应。
当我们把JS去掉
表格的特效都消失了,虽然网页的整体结构还在,但是已经黯然失色了。
我们把CSS去掉
只剩下HTML的标签了,页面布局都消失了。
总结
如果说HTML是网页的结构,表示网页中有什么(表格,按钮,标签),CSS是美化网页,表示网页长什么样。
那么JavaScript就是网页的灵魂,决定这个这个网页最终能实现什么功能。
JavaScript与Java、ECMASCript的关系
- Java与JavaScript的关系
引用网上一个比较流程的比喻
一般认为,当时 Netscape 之所以将 LiveScript 命名为 JavaScript,是因为 Java 是当时最流行的编程语言,带有 “Java” 的名字有助于这门新生语言的传播。
它们的相同之处包括:
- 它们的语法和 C 语言都很相似;
- 它们都是面向对象的(虽然实现的方式略有不同);
- JavaScript 在设计时参照了 Java 的命名规则;
它们的不同之处包括:
- JavaScript 是动态类型语言,而 Java 是静态类型语言;
- JavaScript 是弱类型的,Java 属于强类型;
- JavaScript 的面向对象是基于原型的(prototype-based)实现的,Java 是基于类(class-based)的;
JavaScript 除了长得和 Java 比较像之外,语言风格相去甚远。JavaScript 在设计时所参考的对象不包括 Java,而包括了像 Self 和 Scheme 这样的语言。
- JavaScript和ECMAScript的关系
ECMAScript是JavaScript的规格,JavaScript是ECMAScript的一种实现,在日常场合,这两个词是可以互换的。
JavaScript的创造者Netscape公司,将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国际标准,后来ECMA发布标准文件的第一版(ECMA-262),规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。
该标准从一开始就是针对JavaScript语言制定的,之所以不叫JavaScript,有两个原因:一是商标,Java是Sun公司的商标,根据授权协议,只有Netscape公司可以合法地使用JavaScript这个名字,且JavaScript本身也已经被Netscape公司注册为商标;二是想体现这门语言的制定者是ECMA,不是Netscape,有利于保证这门语言的开放性和中立性。
核心组成部分
JavaScript比ECMA-262的含义多得多,一个完整的JavaScript实现应该由以下三个部分组成:
-
ECMAScript 2.DOM(document object model)3.BOM(browser object document ) (1)ECMA是(欧洲计算机制造商协会)它规定了js的语法标准。
-
DOM是文档对象模型,规定了文档的显示结构,可以轻松地删除、添加和替换节点
-
BOM是浏览器对象模型,就是浏览器自带的一些功能样式,如搜索框,设置,等学习浏览器窗口交互的对象