ES和JS的区别,以及JavaScript的基本组成
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的基本组成相关推荐
- day43 JavaWen阶段——JQuery 基础(JQuery相关开发文档,JQuery对象和JS对象区别与转换,JQuery选择器,JQuery中DOM操作,案列【QQ表情选择】【左右移动】)
今日内容 1. JQuery 基础: 概念 快速入门 JQuery对象和JS对象区别与转换 选择器 DOM操作 案例 今日源码: 链接:https://pan.baidu.com/s/1KiG0c_V ...
- vuejs和html语言一样么,vue和vue.js有区别吗?
vue和vue.js没有区别,vue就是vue.js的简称.vue是前端的主流框架之一,和Angular.js.React.js 一起,并成为前端三大主流框架! Vue (读音 /vjuː/,类似于 ...
- java与jquery的选择器区别_java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...
第一章JQuery 基础 1. 概念: 一个JavaScript框架.简化JS开发 * jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScrip ...
- JS和JS是IE上JavaScript或JScript的缩写。
JS和JS是IE上JavaScript或JScript的缩写. javascript是所有浏览器的开放式标准脚本语言 JScript是微软自己的开放式脚本语言标准,只有微软的IE浏览器遵循. JScr ...
- java day44【JQuery 基础:概念,快速入门,JQuery对象和JS对象区别与转换,选择器,DOM操作,案例】...
第一章 JQuery 基础 1. 概念: 一个JavaScript框架.简化JS开发 * jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScr ...
- JS和node.js的区别
JS和node.js的区别 什么是node.js node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时的环境. 什么是JavaScript 2.1比较JavaScript ...
- big.js、bignumber.js 和 decimal.js 的区别
原文网址:big.js.bignumber.js 和 decimal.js 的区别_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍3个JavaScript的数字处理第三方库的区别,它们是:bi ...
- 编程语言拟人化(1):Java、C++、Python、Ruby、PHP、C#、JS的区别
Java.C++.Python.Ruby.PHP.C#.JS的区别 JavaCPythonRubyPHPCJS的区别 1Java 2C 3Python 4Ruby 5PHP 6C 7JavaScrip ...
- ES TS JS
瞎想.瞎写.瞎抄.天下文章唯抄不断,理解万岁! ES:基础,JS是实现了ES相关的协议 JS: 一堆尖括号的的语音.(看着凌乱,像远古时期,现在已经被抛弃的低效率的数据承载XML一样.不解的是为啥JS ...
最新文章
- 面试必备:一个秒杀系统的设计思考
- 如何在 7 天内写一个程序? | 每日趣闻
- Uploadify 上传插件引起Chrome崩溃解决方法
- 【洛谷P4124】[CQOI2016]手机号码
- java数据库的优化_用Java向数据库中插入大量数据时的优化
- 用android ndk编译ffmpeg,AndroidNDK交叉编译FFMPEG
- grep与egrep的区别
- python语法笔记(四)
- ubuntu14.04上网问题
- python聚类分析案例_深度解读|如何构建用户分级体系实现精细化运营?附案例实操...
- python人门指南小说-Python入门深度学习完整指南
- c# winform 窗体间的传值
- InputStreamReader
- 叫号系统服务器,排队叫号系统设置方法
- Spring实战(第4版)pdf
- java opencv dct 压缩_使用OpenCV计算DCT
- 安卓强刷linux,安卓系统使用dd命令强制刷入以强制升降级、刷入低底包
- git将项目提交到本地创库
- HTML静态网页作业——基于html+css+javascript+jquery+bootstarp响应式成都家乡介绍网页
- js获取最近12个月的时间
热门文章
- 通过分离dataSource 让我们的code具有更高的复用性.
- iOS实现图片自动轮播展示
- Java实现MD5(32/16位大小写)加密
- MediaCodeC解码视频指定帧,迅捷、精确
- 利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
- [nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI
- RapidFramework使用Oracle的步骤
- 一文了解Python常见的序列化操作
- k8s使用kube-router网络插件并监控流量状态
- firefly 编译opencv3.3.1, CMake报错