这两天再看javascript高级教程:http://www.w3school.com.cn/js/pro_js_implement.asp这里面讲了ECMAScript与javascript的关系,看了之后理解的还是不太清楚。
希望大家能帮我解答一下这些问题。1,ECMAScript是一套标准或者规范,它定义了一种脚本语言的应该是什么样子,那么ECMAScript本身是一种脚本语言吗? 我的理解是,首先ECMAScript是一套标准,定义了一种语言(假如A语言)是什么样子,然后呢,它又自己实现了A语言(A语言的语法、类型、语句、关键字、保留字、运算符、对象都是标准定义或者描述的那样。),然后呢A语言的名字也叫ECMAScript,现在ECMAScript即是一套标准,又是一种脚本语言。2,这句话更让我糊涂“每个浏览器都有它自己的 ECMAScript 接口的实现,然后这个实现又被扩展”,ECMAScript的接口是个啥东西,这些接口都是什么接口,操作什么的,这些接口和前面的标准是什么关系?3,关于DOM,教程中有这么一句话:“Web 浏览器中的 DOM 已经用 ECMAScript 实现了,现在是 JavaScript 语言的一个很大组成部分”,这似乎说明ECMAScript是脚本语言,否则怎么会实现DOM的接口呢。
希望大家能帮我解答一下这些问题。1,ECMAScript是一套标准或者规范,它定义了一种脚本语言的应该是什么样子,那么ECMAScript本身是一种脚本语言吗? 我的理解是,首先ECMAScript是一套标准,定义了一种语言(假如A语言)是什么样子,然后呢,它又自己实现了A语言(A语言的语法、类型、语句、关键字、保留字、运算符、对象都是标准定义或者描述的那样。),然后呢A语言的名字也叫ECMAScript,现在ECMAScript即是一套标准,又是一种脚本语言。2,这句话更让我糊涂“每个浏览器都有它自己的 ECMAScript 接口的实现,然后这个实现又被扩展”,ECMAScript的接口是个啥东西,这些接口都是什么接口,操作什么的,这些接口和前面的标准是什么关系?3,关于DOM,教程中有这么一句话:“Web 浏览器中的 DOM 已经用 ECMAScript 实现了,现在是 JavaScript 语言的一个很大组成部分”,这似乎说明ECMAScript是脚本语言,否则怎么会实现DOM的接口呢。
也就是说它只是定义了接口,规则,然后由各大浏览器厂商去实现这些接口,根规则.具体的实现代码救在浏览器中,你是看不到的,比如Array.join()这个方法,ECMAScript只是定义,浏览器去具体实现
而DOM就是文档对象模型,是独立于语言(语言无关的,java中也有实现,javascript中也有实现)的规范.
第一个问题:ECMAScript就是一个标准或者规范,它就是文字性的描述了一种语言是什么样子。
第二、三个问题:ECMAScript的标准被javascript实现了,然后DOM的接口是浏览器通过ECMAScript定义语法实现的。所以呢,DOM可以作为javascript的一个组成部分,因为他们的语法各方面都是一样的。相当于javascript的一个组件,除此之外浏览器也定义自己的一部分接口,并进行实现,相当于扩展了ECMAScript的接口。
以上是我对于您的解释的理解,请在复查一下。另外我又有一个问题:
是浏览器实现了ECMAScript还是javascript实现了ECMAScript,我的理解是javascript实现了ECMAScript,浏览器来解释执行javascript,为什么会说浏览器也实现了ECMAScript呢?难道是因为浏览器通过ECMAScript定义的语法实现了DOM的接口就认为浏览器实现了ECMAScript吗?
谢谢您的回答!
不知道你为什么要来纠结这些东西2楼的其实已经说得很清楚了就好比一部车,有发动机,有轮胎,有方向盘等等。这就是对车的一种标准化的定义然后每个汽车生产厂商,可以做出不同性能,不同款式的车来。但归根结底,大家都有一样的东西。只是实现的方法不同。有的性能好点。比如自带导航了。这就好比进行扩展了不管是javascript或才是jscript都只是对这套标准的一个扩展我们用javascript去构造一些函数实现我们自己的功能,只是好比于我们是开车的人,你做的所有的事情都只是在你开的这部车允许你做的范围之内。你的车只是陆路上走走而已的,你不可能开着它在水下还跑得若无其事大概就这么个意思吧
对于javascript这种脚本语言的理解上我理解偏了,也就是对ECMAScript标准的实现理解偏了,所谓的实现是实现一种脚本语言,而不是我理解的接口。
之前以为javascript就是某一个组织或者人编写完之后,然后各个浏览器厂商通过js引擎来解释执行,其实不然。
其实是通过ECMAScript制定的标准,各浏览器厂商以此标准实现了自己的“javascript”,这些javascript基本的东西都是一样的,比如语法、类型......。除此之外浏览器厂商还做了一些扩展。
再次谢谢你们!