JavaScript简介
JavaScript,通常被缩写为JS,是一种轻量级、跨平台、单线程、解释编译的编程语言。它也被称为网页脚本语言。它以网页开发而闻名,许多非浏览器环境也使用它。
JavaScript是一种弱类型语言。JavaScript可用于客户端开发以及服务器端开发。JavaScript既是命令式语言又是声明式语言。JavaScript包含一个标准对象库(例如Array、Date和Math),以及一组核心语言元素(例如运算符、控制结构和语句)。
JavaScript允许向网页添加交互性。例如,可将JavaScript与HTML和CSS结合使用来增强网页的功能,例如表单验证、创建交互式地图以及显示动画图表。
当加载网页时,即HTML和CSS运行之后,网络浏览器中的JavaScript引擎才会执行JavaScript代码。然后,JavaScript代码修改HTML和CSS以动态更新网页界面。
JavaScript引擎是Web浏览器的一个组件,负责解释和执行JavaScript代码。它包括一个用于分析代码的解析器、一个用于将其转换为机器代码的编译器以及一个用于运行编译后的代码的解释器。
JavaScript引擎包括Chrome中的V8、Firefox中的spiderMonkey和Safari中的JavaScriptCore。
最初,JavaScript引擎是作为解释器实现。然而,现代JavaScript引擎通常被实现为即时编译器,将JavaScript代码编译为字节码以提高性能。
JavaScrip的历史
- JavaScript的诞生:
- 1995年,由Netscape公司的工程师Brendan Eich与Sun公司联手开发了JavaScript。最初开始的名字是Mocha,在服务端上叫LiveWire,后改为LiveScript。
- 1995年12月4日,网景把LiveScript改为JavaScript。
- JavaScript的标准化:
- 1996年,JavaScript的1.1版本发布。
- 在1997年,由欧洲计算机制造商协会(Ecma)中的第39技术委员会(TC39)承担了“标准化一门通用、跨平台、厂商中立的脚本语言的语法和语义”的任务。TC39委员花费数月打造出ECMA-262,也就是ECMAScript作为新的脚本语言标准。
- 随后在1998年,国际标准化组织(ISO)和国际电工委员会(IEC)也将采用ECMAScript作为标准。
- ECMAScript的后续版本:随着JavaScript的普及,开发人员开始就语言的不足之处提出了一些批评。这导致了一些改进,包括ECMAScript 2.0、ECMAScript 3.0、ECMAScript 4.0等等。其中,ECMAScript 3.0成为JavaScript的主流版本,它在2000年发布,并一直延续至今。
- JavaScript的复兴:2005年,Ajax技术的出现让JavaScript重新焕发生机。Ajax允许网页通过JavaScript异步加载数据,而不需要整个页面重新加载。这使得网页更加动态和交互性,也使得JavaScript在网页开发中得到了更广泛的应用。
- ECMAScript 6.0(也称为ECMAScript 2015)及以后的版本:2015年,ECMAScript 6.0(也称为ECMAScript 2015)发布,它引入了许多新的特性和语法,包括箭头函数、类、模板字符串等等。此后,每年都会发布新的ECMAScript版本,以不断完善和改进JavaScript的功能。
JavaScript 的组成
完整的JavaScript:
- ECMAScript:是指JavaScript 的语法标准。
- DOM:文档对象模型,是提供与网页上的元素交互的 API。
- BOM:浏览器对象模型,是提供用于与 Web浏览器交互的浏览器 API。
JavaScript 的特点
- 可以使用任何文本编辑工具编写,然后使用浏览器就可以执行程序。
- 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
- 是一种解释型脚本语言:代码不进行预编译,从上往下逐行执行,不需要进行严格的变量声明。
- 主要用来向 HTML 页面添加交互行为,例如表单验证、创建交互式地图以及显示动画图表
- JavaScript 是一门弱类型的动态脚本语言,支持多种编程范式,包括面向对象和函数式编程,被广泛用于Web 开发。
- JavaScript是一门基于原型的动态解释性脚本语言
- 可以处理日期和时间
- 不需要编译器
JavaScript与ECMAScript的关系
- ECMAScript是一种语言标准
- JavaScript是对ECMAScrip的一种实现
JavaScript客户端与服务端
JavaScript可以在网络浏览器和服务器上运行。
- 当JavaScript在网络浏览器中执行,作为客户端语言
- 现在流行的JavaScript服务器端环境是Node.js。与客户端JavaScript不同,服务器端JavaScript在服务器上执行,并允许访问数据库、文件系统等
JavaScript的限制
- 安全风险:JavaScript 可用于使用 AJAX 或通过操作加载数据的标签(例如 <img>、<object>、<script>)来获取数据。这些行为称为跨站点脚本攻击。他们将不属于网站一部分的 JS 注入访问者的浏览器中,从而获取详细信息。
- 性能:JavaScript 无法提供与许多传统语言相同的性能水平,因为用 JavaScript 编写的复杂程序相对较慢。但由于 JavaScript 用于在浏览器中执行简单的任务,因此性能并不被认为是其使用的大限制。
- 复杂性:要掌握脚本语言,程序员必须全面了解所有编程概念、核心语言对象以及客户端和服务器端对象,否则他们将很难使用 JavaScript 编写高级脚本。
- 弱错误处理和类型检查设施:它是一种弱类型语言,因为不需要指定变量的数据类型。因此编译不会执行错误类型检查。
JavaScrip用途
- 嵌入动态文本于HTML页面
- 对浏览器事件作出响应
- 读写HTML元素
- 在数据被提交到服务器之前验证数据
- 检测访客的浏览器信息
为什么JavaScript被称为轻量级编程语言
JavaScript 被认为是轻量级的,因为它的 CPU 使用率低,易于实现,并且具有简约的语法。例如,没有数据类型。这里一切都被视为对象。由于其语法类似于C++和Java,因此非常容易学习。
轻量级语言不会消耗太多 CPU 资源。它不会对您的 CPU 或 RAM 造成过度压力。此外,与其他编程语言相比,它的内置库或框架较少,这也是它轻量级的另一个原因。然而,这带来了一个缺点,即我们需要合并外部库和框架。