第1章 什么是JavaScript

news/2024/11/30 9:30:50/

引言


JavaScript最早诞生的原因是希望表单验证可以在客户端得到解决。频繁通过服务端的请求来验证表单缓慢的网速让页面每次刷新都考验着人们的耐心。

如今的js不再局限简单的表单验证,能够实现复杂的计算与交互,包括闭包、匿名(lambda)函数,甚至元编程等特性。不仅是桌面浏览器,手机浏览器和屏幕阅读器也支持JavaScript,其重要性可见一斑。


简短的历史回顾

1995年 网景与Sun公司结为开发联盟,共同完成LiveScript的开发随后又改名为JavaScript。

1996年 由于JavaScript 1.0的成功,微软发布了IE3,其中包含自己名为JScript。微软的JavaScript实现意味着出现了两个版本,网景/Sun中的JavaScript,以及IE中的JScript。

1997年 TC39打造的ECMAScript成为这个新的脚本语言标准。

1998年自此以后,各家浏览器均以ECMAScript作为自己JavaScript实现的依据


JavaScript实现

完整的JavaScript实现包含以下几个部分

在这里插入图片描述

ECMAScript(核心)

ECMAScript,即ECMA-262定义的语言,并不局限于Web浏览器

Web浏览器只是ECMAScript实现可能存在的一种宿主环境。宿主环境提供了ECMAScript的基准实现和与环境自身交互必需的扩展比如DOM

其他宿主环境还有服务器端JavaScript平台Node.js

如果不涉及浏览器的话,ECMA-262到底定义了什么?在基本的层面,它描述这门语言的如下部分:

❑ 语法
❑ 类型
❑ 语句
❑ 关键字
❑ 保留字
❑ 操作符
❑ 全局对象

1. ECMAScript版本

ES1本质上跟网景的JavaScript 1.1相同,只不过删除了所有浏览器特定的代码,外加少量细微的修改

ES2主要是为了更新之后严格符合ISO/IEC-16262的要求

ES3第一次真正对这个标准进行更新,更新了字符串处理、错误定义和数值输出。此外还增加了对正则表达式、新的控制语句、try/catch异常处理的支持,以及为了更好地让标准国际化所做的少量修改

ES4新增了包括强类型变量、新语句和数据结构、真正的类和经典的继承,以及操作数据的新手段。

ES5新功能包括原生的解析和序列化JSON数据的JSON对象、方便继承和高级属性定义的方法,以及新的增强ECMAScript引擎解释和执行代码能力的严格模式

ES6这一版包含了大概这个规范有史以来最重要的一批增强特性。ES6正式支持了类、模块、迭代器、生成器、箭头函数、期约、反射、代理和众多新的数据类型。

ES7这次修订只包含少量语法层面的增强,如Array.prototype.includes和指数操作符。

ES8这一版主要增加了异步函数(async/await)、SharedArrayBuffer及Atomics API,以及Object.values()/Object.entries()/Object. getOwnPropertyDescriptors()和字符串填充方法,另外明确支持对象字面量最后的逗号。

ES9这次修订包括异步迭代、剩余和扩展属性、一组新的正则表达式特性、Promise finally(),以及模板字面量修订。

ES10这次修订增加了Array.prototype. flat()/flatMap()、String.prototype.trimStart()/trimEnd()、Object.fromEntries()方法,以及Symbol.prototype.description属性,明确定义了Function.prototype.toString()的返回值并固定了Array.prototype.sort()的顺序。另外,这次修订解决了与JSON字符串兼容的问题,并定义了catch子句的可选绑定。

2. ECMAScript符合性是什么意思

ECMAScript符合性是指JavaScript引擎是否遵循了ECMAScript规范,确保代码在不同环境中行为一致。规范定义了语法、类型、功能等细节,符合性保证了代码可移植性和一致性。

3. 浏览器对ECMAScript的支持

如今各大游览器基本都支持ECMAScript

DOM

DOM就是使用ECMAScript实现的

文档对象模型(DOM, Document Object Model)是一个应用编程接口(API)。DOM将整个页面抽象为一组分层节点。下文代码通过DOM表现如下结构

<html><head><title>Sample Page</title></head><body><p> Hello World! </p></body>
</html>

在这里插入图片描述
DOM通过创建表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。使用DOM API,可以轻松地删除、添加、替换、修改节点。

1. 为什么DOM是必需的

  1. 交互性和用户体验
  2. 操作网页元素
  3. 实时更新
  4. 与服务器交互
  5. 动态创建元素

2. DOM级别

DOM Level 1的目标是映射文档结构

DOM Level 2新增了DOM视图,DOM事件,DOM样式,DOM遍历和范围

DOM Level 3进一步扩展了DOM,增加了以统一的方式加载和保存文档的方法,还有验证文档的方法

BOM

浏览器对象模型(BOM)API,用于支持访问和操作浏览器的窗口。使用BOM,开发者可以操控浏览器显示页面之外的部分。


JavaScript版本

在这里插入图片描述

小结

JavaScript是一门用来与网页交互的脚本语言,包含以下三个组成部分。

❑ ECMAScript:由ECMA-262定义并提供核心功能。
❑ 文档对象模型(DOM):提供与网页内容交互的方法和接口。
❑ 浏览器对象模型(BOM):提供与浏览器交互的方法和接口。


http://www.ppmy.cn/news/1006936.html

相关文章

阶段总结(linux基础)

目录 一、初始linux系统 二、基本操作命令 三、目录结构 四、文件及目录管理命令 查看文件内容 创建文件 五、用户与组管理 六、文件权限与压缩管理 七、磁盘管理 八、系统程序与进程管理 管理机制 文件系统损坏 grub引导故障 磁盘资源耗尽 程序与进程的区别 查…

redis 原理 7:开源节流 —— 小对象压缩

Redis 是一个非常耗费内存的数据库&#xff0c;它所有的数据都放在内存里。如果我们不注意节约使用内存&#xff0c;Redis 就会因为我们的无节制使用出现内存不足而崩溃。Redis 作者为了优化数据结构的内存占用&#xff0c;也苦心孤诣增加了非常多的优化点&#xff0c;这些优化…

华云安参编的《云原生安全配置基线规范》正式发布

由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;、中国通信标准化协会主办的第十届可信云大会云原生安全分论坛于7月26日在北京国际会议中心成功召开。作为大会上展示的成果之一&#xff0c;由中国信通院联合行业领先企业共同编写的《云原生安全配置基线规…

Maven依赖爆红的几种解决思路

说明&#xff1a;本文介绍Maven依赖爆红&#xff0c;排查错误的几种思路&#xff1b; 思路一&#xff1a;删除本地仓库.lastupdate文件&#xff1b; 找到本地maven仓库&#xff0c;全局搜索.lastupdate文件&#xff0c;把搜索出来的文件全部删除。.lastupdate后缀名的文件&am…

linux_驱动_iic总线获取si7006温湿度

应用层si7006.c #include<stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <arpa/inet.h>…

【无标题】云原生在工业互联网的落地及好处!

什么是工业互联网&#xff1f; 工业互联网&#xff08;Industrial Internet&#xff09;是新一代信息通信技术与工业经济深度融合的新型基础设施、应用模式和工业生态&#xff0c;通过对人、机、物、系统等的全面连接&#xff0c;构建起覆盖全产业链、全价值链的全新制造和服务…

JS密码正则验证(不能连续字符(如123、abc)连续3位或3位以上)(不能相同字符(如111、aaa)连续3位或3位以上)

密码必须为8到16位且必须包含数字和字母密码必须包含特殊字符【_&#%】不能连续字符&#xff08;如123、abc&#xff09;连续3位或3位以上不能相同字符&#xff08;如111、aaa&#xff09;连续3位或3位以上 const regFun (str) > {// 密码必须包含数字和字母// 密码长度…

探秘手机隐藏的望远镜功能:开启后,观察任何你想看的地方

当今的智能手机不仅仅是通信工具&#xff0c;它们蕴藏着各种隐藏的功能&#xff0c;其中之一就是让你拥有望远镜般的观察能力。是的&#xff0c;你没有听错&#xff01;今天我们将探秘手机中隐藏的望远镜功能&#xff0c;这项神奇的功能可以让你打开后&#xff0c;轻松观察任何…