JavaScript是语言,而ECMAScript(即ECMA-262,ECMA是欧洲计算机制造商协会)是为了规范JS而制定的标准,ECMAScript有不同版本,最近的版本是第10版,发布于2019.6。

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

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

可以用下面这张图进行粗略的记忆


具体来说,ECMA-262定义了一门语言的如下部分

语法

类型

语句

关键字

保留字

操作符

全局对象


ECMA-262第6版,俗称ES6、ES2015或ES Harmony(和谐版),于2015年6月发布。这一版包含了大概这个规范有史以来最重要的一批增强特性。ES6正式支持了类、模块、迭代器、生成器、箭头函数、期约、反射、代理和众多新的数据类型。


DOM Level 1 在1998.10成为W3C的推荐标准。它由DOM Core 和DOM HTML两个部分组成。DOM Core提供了一种映射XML文档,从而方便访问和操作文档任意部分的方式;DOM HTML扩展了前者,并增加了特定于HTML的对象和方法。

DOM Level 2  新增了以下模块,以支持新的接口。

DOM视图:描述追踪文档不同视图(如应用CSS样式前后的文档)的接口。

DOM事件:描述事件及事件处理的接口。

DOM样式:描述处理元素CSS样式的接口。

DOM遍历和范围:描述遍历和操作DOM树的接口。

DOM Level 3 增加了以统一的方式加载和保存文档的方法(包含在一个叫DOM Load and Save的新模块中),还有验证文档的方法(DOM Validation)。

DOM Level 4 新增Mutation Observers,替代 了Mutation Events .


BOM 主要针对浏览器窗口和子窗口(frame),不过人们通常会把任何特定于浏览器的扩展都归在 BOM 的范畴内。 下面就是这样一些扩展。

弹出新浏览器窗口的能力;

移动、缩放和关闭浏览器窗口的能力;

navigator对象,提供关于浏览器的详尽信息;

location对象,提供浏览器加载页面的详尽信息;

screen对象,提供关于用户屏幕分辨率的详尽信息;

performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;

对cookie的支持;

其他自定义对象,如XMLHttpRequest和IE的ActiveXObject。


出处:《JavaScript高级程序设计(第4版)》Matt Frisbie著 李松峰译

ES和JS的区别,以及JavaScript的基本组成相关推荐

  1. day43 JavaWen阶段——JQuery 基础(JQuery相关开发文档,JQuery对象和JS对象区别与转换,JQuery选择器,JQuery中DOM操作,案列【QQ表情选择】【左右移动】)

    今日内容 1. JQuery 基础: 概念 快速入门 JQuery对象和JS对象区别与转换 选择器 DOM操作 案例 今日源码: 链接:https://pan.baidu.com/s/1KiG0c_V ...

  2. vuejs和html语言一样么,vue和vue.js有区别吗?

    vue和vue.js没有区别,vue就是vue.js的简称.vue是前端的主流框架之一,和Angular.js.React.js 一起,并成为前端三大主流框架! Vue (读音 /vjuː/,类似于 ...

  3. java与jquery的选择器区别_java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...

    第一章JQuery 基础 1. 概念: 一个JavaScript框架.简化JS开发 * jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScrip ...

  4. JS和JS是IE上JavaScript或JScript的缩写。

    JS和JS是IE上JavaScript或JScript的缩写. javascript是所有浏览器的开放式标准脚本语言 JScript是微软自己的开放式脚本语言标准,只有微软的IE浏览器遵循. JScr ...

  5. java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...

    第一章  JQuery 基础 1. 概念: 一个JavaScript框架.简化JS开发 * jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScr ...

  6. JS和node.js的区别

    JS和node.js的区别 什么是node.js node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时的环境. 什么是JavaScript 2.1比较JavaScript ...

  7. big.js、bignumber.js 和 decimal.js 的区别

    原文网址:big.js.bignumber.js 和 decimal.js 的区别_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍3个JavaScript的数字处理第三方库的区别,它们是:bi ...

  8. 编程语言拟人化(1):Java、C++、Python、Ruby、PHP、C#、JS的区别

    Java.C++.Python.Ruby.PHP.C#.JS的区别 JavaCPythonRubyPHPCJS的区别 1Java 2C 3Python 4Ruby 5PHP 6C 7JavaScrip ...

  9. ES TS JS

    瞎想.瞎写.瞎抄.天下文章唯抄不断,理解万岁! ES:基础,JS是实现了ES相关的协议 JS: 一堆尖括号的的语音.(看着凌乱,像远古时期,现在已经被抛弃的低效率的数据承载XML一样.不解的是为啥JS ...

最新文章

  1. 面试必备:一个秒杀系统的设计思考
  2. 如何在 7 天内写一个程序? | 每日趣闻
  3. Uploadify 上传插件引起Chrome崩溃解决方法
  4. 【洛谷P4124】[CQOI2016]手机号码
  5. java数据库的优化_用Java向数据库中插入大量数据时的优化
  6. 用android ndk编译ffmpeg,AndroidNDK交叉编译FFMPEG
  7. grep与egrep的区别
  8. python语法笔记(四)
  9. ubuntu14.04上网问题
  10. python聚类分析案例_深度解读|如何构建用户分级体系实现精细化运营?附案例实操...
  11. python人门指南小说-Python入门深度学习完整指南
  12. c# winform 窗体间的传值
  13. InputStreamReader
  14. 叫号系统服务器,排队叫号系统设置方法
  15. Spring实战(第4版)pdf
  16. java opencv dct 压缩_使用OpenCV计算DCT
  17. 安卓强刷linux,安卓系统使用dd命令强制刷入以强制升降级、刷入低底包
  18. git将项目提交到本地创库
  19. HTML静态网页作业——基于html+css+javascript+jquery+bootstarp响应式成都家乡介绍网页
  20. js获取最近12个月的时间

热门文章

  1. 通过分离dataSource 让我们的code具有更高的复用性.
  2. iOS实现图片自动轮播展示
  3. Java实现MD5(32/16位大小写)加密
  4. MediaCodeC解码视频指定帧,迅捷、精确
  5. 利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
  6. [nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI
  7. RapidFramework使用Oracle的步骤
  8. 一文了解Python常见的序列化操作
  9. k8s使用kube-router网络插件并监控流量状态
  10. firefly 编译opencv3.3.1, CMake报错