JavaScript与ECMAScript区别

上律指南针司考 2019-11-18 186 阅读

JavaScript是一门非常流行的脚本语言,学习者众多。
当初学者刚开始入门此语言的时候,可能会发现如下几个问题:
(1).有些教程分为JavaScript教程和ECMAScript教程两部分。
(2).在JavaScript学习群交流的时候,ES5或者ES6涉及版本的名词经常被提及。
特别说明:ES是ECMAScript的缩写。
由此会产生诸多疑问,以笔者的亲身经历和群里朋友的交流总结出如下几条:
(1).JavaScript与ECMAScript是否是两种不同的语言。
(2).两者的关系与区别是什么。
下面对两者进行一下介绍,并回答一下上面所列举的几个常见疑问。
一.ECMAScript是什么:
它是Ecma国际发布的一个脚本程序设计语言规范,具体发展历史本文不做介绍。
既然是规范,那么它就是一套遵循的通用标准,只要它的具体实现遵循此套标准即是合法的。
就像是法律规定不能谩骂他人,只要你遵循这个规则,你具体用何种方言或者何种语速说话都是合法的。
ECMAScript也是同样的道理,比如它规定=用来进行赋值,具体能赋哪些值与它的具体实现密切相关。
比如可以将一个获取的div对象赋值给一个变量,这就是它的具体实现。
二.问题解答:
(1).两者是否是两种不同的语言:
前面已经介绍,ECMAScript是一套脚本规范,用于制定行为准则。
JavaScript则是这套行为准则在浏览器平台上的具体实现,不能认为是一种语言。
(2).两者的关系:
JavaScript是ECMAScript是规范在浏览器上的具体实现。
利用此规范,JavaScript可以操作DOM对象和window对象。
也就是说,JavaScript涵盖了三方面的内容,ECMAScript、DOM对象与window对象。
ECMAScript还有其他具体实现,比如当前比较火的node.js。
还有当前有点过时的用于Flash编程的ActionScript也是ECMAScript的具体实现。
看一段代码实例:

   [ ECMAScript ] 运行代码    下载代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.cxvn.com/" />
<title>JavaScript与ECMAScript区别</title>
<style>
div {
width:100px;
height:100px;
background-color:#ccc;
}
</style>
<script>
window.onload = function () {
var obt = document.getElementById("bt");
var odiv = document.getElementById("ant");
obt.onclick = function () {
odiv.style.backgroundColor = "red";
}
}
</script>
</head>
<body>
<div id="ant"></div>
<input type="button" id="bt" value="查看演示"/>
</body>
</html>

上面是一段简单的JavaScript代码,点击按钮可以将div的背景颜色设置为红色。
对代码分析如下:
(1).=是赋值运算符,赋值操作肯定要遵循ECMA规范。
(2).document是浏览器实现的对象。
(3).getElementById方法是声明在document对象上的方法,自然也是由浏览器实现。
(4).使用var声明变量是ECMA规范规定。
由此可以见,JavaScript是遵循ECMA规范,具体实现于浏览器平台的一套脚本编程语言。

最新游戏