ECMAscript v.s. Javascript

ECMAscript是一种中性的语言,中性表示与所处环境(宿主环境)无关(客户端/服务器/浏览器),它仅仅是一个纯粹意义上的语言。

ECMAscript-262定义了这门语言的基础,或者说规则(比如说这门语言语法,里面有什么基础类型,类型间如何转换,变量行为,函数行为),就像定义了一个接口。

如何实现这些规则就是宿主环境的事情了,当然宿主环境不仅要实现定义的规则,也会用这些规则做一些特定的事情,这些事情是没有定义在ECMAscript中的扩展。

比如说Web浏览器中的Javascript:

Javascript = ECMAscript + DOM + BOM

  • ECMAscript:语言核心
  • DOM:文档对象模型 (操作HTML页面内容)
  • BOM:浏览器对象模型 (操作浏览器行为)

除了Javascript,还有其他宿主环境也实现了ECMAscript,比如Adobe的Actionscript。(语言定义出来是写诗歌还是小说?)

题外话:如何定义规则不是件容易的事情,特别当这个规则是一门语言,这些规则要互相呼应,不能自相矛盾,规则定义太强会失去灵活性,定义太弱会不严谨不安全,这些都是直接影响到语言的发展和未来,如何把握这个度就是一门艺术。

版本

  • ECMAscript v1:仅仅是Netscape的Javascript1.1除去浏览器部分代码。
  • ECAMScript v2:仅仅是对第一版进行编辑加工,不会作为兼容性的标准。
  • ECAMScript v3:对标准第一次真正的修改,字符串处理,错误定义,数值输出,正则表达式,控制语句,异常处理,这才成为一门真正的语言。
  • ECAMScript v4:基本上定义了一门新的语言,强类型,新语句,新数据结构,真正的类,经典继承,数据交互方式。
  • ECAMScript v3.1:组委会觉得4改动太大!提出了3.1的替代建议,4没有发布就放弃了
  • ECAMScript v5: 澄清3中已知的歧义,添加新功能:JSON对象,继承的方法,高级属性定义,严格模式。

目前浏览器中的Javascript都能兼容v5(IE9,Firefox4,Chrome,Safari)

时间: 2024-08-24 16:46:58

ECMAscript v.s. Javascript的相关文章

JavaScript的组成—ECMAScript、BOM和DOM

http://www.itxueyuan.org/view/6299.html JavaScript 是一种基于 ECMAScript 规范的脚本语言,并在此基础上进行了自己的封装.ECMAScript 不是一种编程语言,仅仅是一种脚本语言规范,由欧洲计算机协会制定和发布,任何基于此规范实现的脚本语言都要遵守它的约定. 除了JavaScript,微软发布的 JScript 和 Flash 开发中的 ActionScript 也是基于 ECMAScript 规范的. 在JavaScript,JSc

javascript--浏览器对象模型BOM、文本对象模型DOM、JavaScript 语言基础ECMAScript

JavaScript 的内容,包含以下三部分: ECMAScript(核心):JavaScript 语言基础: DOM(文档对象模型):规定了访问HTML和XML的接口: BOM(浏览器对象模型):提供了独立于内容而在浏览器窗口之间进行交互的对象和方法. 一. ECMAScript ECMAScript 规定了 JavaScript 脚本的核心语法,如 数据类型.关键字.保留字.运算符.对象和语句等,它不属于任何浏览器. ECMAScript 标准定义了 JavaScript 脚本中最为核心的内

【JavaScript】你知道吗?Web的26项基本概念和技术

Web开发是比较费神的,需要掌握很多很多的东西,特别是从事前端开发的朋友,需要通十行才行.今天,本文向初学者介绍一些Web开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术. A — AJAX AJAX 全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.根据Ajax提出者Jesse James Garrett建议,AJAX: 使用XHTML+CSS来表示信息: 使用Java

JavaScript学习总结-技巧、实用函数、简洁方法、编程细节

整理JavaScript方面的一些技巧,比较实用的函数,常见功能实现方法,仅作参考 变量转换 //edit http://www.lai18.com var myVar = "3.14159", str = ""+ myVar,// to string int = ~~myVar, // to integer float = 1*myVar, // to float bool = !!myVar, /* to boolean - any string with le

javaScript使用技巧

阅读目录 变量转换 取整同时转换成数值型 日期转数值 类数组对象转数组 进制之间的转换 将一个数组插入另一个数组指定的位置 删除数组元素 判断是否为IE 尽量利用原生方法 生成随机数 不用第三方变量交换两个变量的值 事件委派 检测ie版本 javaScript版本检测 判断属性是否存在 检测对象是否为数组 给函数传递对象 为replace方法传递一个函数 循环中使用标签 对数组进行去重 查找字符串中出现最多的字符及个数 变量转换 1 2 3 4 5 6 7 var myVar   = "3.14

《jQuery风暴》第2章 必须知道的JavaScript知识

第2章 必须知道的JavaScript知识 JavaScript是jQuery应用的基础,掌握JavaScript这门语言是使用jQuery的基础条件.本章不会全面细致的讲解JavaScript的全部, 而是讲解其精髓,这些知识可以提升大家的JavaScript内功.切忌,要修炼上乘的武功,必须要有深厚的内功基础,否则只可学到其招式而发挥不了功力.JavaScript实际上包括三部分: w   ECMAScript 描述了该语言的语法和基本对象. w   DOM 描述了处理网页内容的方法和接口.

前端基础-JavaScript的基本概述和语法

1.JavaScript概述 2.JavaScript引入方式 3.JavaScript语言规范 4.JavaScript语言基础 5.JavaScript数据类型 6.JavaScript运算符 7.JavaScript流程控制 8.JavaScript函数 9.JavaScript词法分析 10.JavaScript内置对象和方法 一.JavaScript概述 1.ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将

JavaScript基础入门 - 01

JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码,说到这,我们首先要来说明一个需要新人们关注的点,因为我们的js是一门跨平台的语言,所以说,我们的代码可以运行在不同的平台之上.这也就导致了可能相同的代码放在不同的平台运行就会有所出入. 这里面说的平台其实被称之为宿主环境. 同时,代码在不同的平台上的运行方式也有所不同. 如果运行在服务端,那么更多的

【JavaScript基础#1】 -- 2019-08-17 00:11:51

原文: http://blog.gqylpy.com/gqy/237 " ? 目录 #. 概述 1. ECMAScript与JavaScript的关系 2. ECMAScript版本历史 3. 简单总结 #. 用法 1. 引入方式 2. 规范 3. 变量声明 #. 数据类型 1. 数值(Number) 2. 字符串(String) 3. 布尔值(Boolean) 4. null与undefined 5. 数组 6. 类型查询(typeof) 7. 运算符 #. 流程控制 1. if-else 2