JavaScript学习:JavaScript实现

虽然JavaScript和ECMAScript通常都被人们用来表达相同的含义,但JavaScript的含义却远比ECMA-262中规定的要多得多。

一个完整的JavaScript实现应该由三个不同的部分组成:

  1. 核心(ECMAScript):规定脚本语言的基本标准
  2. 文档对象模型(DOM):控制页面内容和结构的方法和接口
  3. 浏览器对象模型(BOM):访问和操作浏览器的方法和接口

(1)ECMAScript

由ECMA-262定义的ECMAScript与Web浏览器没有依赖关系。ECMA-262定义的只是这门语言的基础,而在此基础上可以构建更完善的脚本语言。

JavaScript语言核心针对文本、数组、日期和正则表达式的操作定义了很少的API,但是这些API不包括输入和输出功能。

输入和输出功能(类似网络、存储和图形相关的复杂特性)是有JavaScript所属的“宿主环境”(host enviroment)提供的。

我们常见的Web浏览器只是ECMAScript实现可能的宿主环境之一,宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言和环境之间对接交互。而这些扩展——如DOM,则利用ECMAScript的核心类型和语法提供更多具体的功能,以便实现针对环境的操作。其他宿主环境包括Node(一种服务端JavaScript平台)和Adobe Flash。

ECMA-26标准规定了如下部分:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操作符
  • 对象

ECMAScript就是对实现该标准规定的各个方面的内容的语言的描述。

(2)文档对象模型(DOM)

文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口(API,Application Programming Interface)。

DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。

负责制定Web通信标准的W3C(World Wide Web Consortium,万维网联盟)规划DOM。

注:DOM并不只是针对JavaScript的,很多别的语言也都实现了DOM。不过在Web浏览器中,基于ECMAScript实现的DOM的确已经成为JavaScript这门语言的一个重要组成部分。

(3)浏览器对象模型(BOM)

Web浏览器支持可以访问和操作浏览器窗口的浏览器对象模型(BOM,Brower Object Model)。

开发人员使用BOM可以控制浏览器显示的页面以外的部分。

而BOM真正与众不同的地方(也是经常会导致问题的地方),还是它作为JavaScript实现的一部分但却没有相关的标准。这个问题在HTML5中得到了解决,HTML5致力于把很多BOM功能写入正式规范。

时间: 2024-10-09 04:46:10

JavaScript学习:JavaScript实现的相关文章

JavaScript学习——JavaScript语法 语句

JavaScript 语法 JavaScript 是一个脚本语言. 它是一个轻量级,但功能强大的编程语言. JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14. 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e). 3.14 1001 123e5 字符串(String)字面量 可以使用单引号或双引号: <!DOCTYPE html> <html> <head> <meta charset="utf-8&qu

JavaScript学习——JavaScript对象

JavaScript 对象 JavaScript 对象是拥有属性和方法的数据. 真实生活中的对象,属性和方法 真实生活中,一辆汽车是一个对象. 对象有它的属性,如重量和颜色等,方法有启动停止等: 所有汽车都有这些属性,但是每款车的属性都不尽相同. 所有汽车都拥有这些方法,但是它们被执行的时间都不尽相同. 在 JavaScript中,几乎所有的事物都是对象. 对象定义 可以使用字符来定义和创建 JavaScript 对象: var person = {firstName:"Joy", l

JavaScript学习---JavaScript深入学习

对象的概念 对象分类[3种]:     ECMScript(JS自己的对象), BOM(浏览器对象)    DOM(文档对象,操作HTML的) 11种内置对象:       Array ,String , Date, Math, Boolean, Number  Function, Global, Error, RegExp , Object 注意: JavaScript中除了Null和undefined以外,其余均为对象 ECMScript对象 Object对象:ECMAScript 中的所有

JavaScript学习——JavaScript 变量 与 数据类型

JavaScript 变量 变量是用于存储信息的"容器". var x=5; var y=6; var z=x+y; 在代数中,我们使用字母(比如 x)来保存值(比如 5). 通过上面的表达式 z=x+y,我们能够计算出 z 的值为 11. 在 JavaScript 中,这些字母被称为变量 变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume). 变量必须以字母开头 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)

JavaScript学习——JavaScript比较和 逻辑运算

比较运算符 比较运算符在逻辑语句中使用,以测定变量或值是否相等. JavaScript"=="的作用 当==两边的内容是字符串时,则比较字符串的内容是否相等. 当==两边的内容是数字时,则比较数字的大小是否相等. 当==两边的内容是对象或者是对象的函数属性时,则比较内存地址是否相等. ==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase. x=5,下面的表格解释了比较运算符: 运算符 描述 比较 返回值 === 绝对等于

JavaScript学习——JavaScript 条件 语句 switch语句 while语句

JavaScript if...Else 语句 条件语句 在 JavaScript 中,我们可使用以下条件语句: if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码 if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码 if...else if....else 语句- 使用该语句来选择多个代码块之一来执行 switch 语句 - 使用该语句来选择多个代码块之一来执行 if 语句 只有当指定条件为 true 时,该语句才会执行代码.

JavaScript学习——JavaScript 对象 数据类型总结02

JavaScript 字符串(String) 对象 一个字符串用于存储一系列字符就像 "John Doe". 一个字符串可以使用单引号或双引号: var carname="BMW"; var carname='BMW'; 使用位置(索引)可以访问字符串中任何的字符: var character=carname[7]; 字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等. 可以在字符串中使用引号 var sname="王老五&

我的javascript学习路线(保持更新)

javascript是什么? javascript作为一个强大弱类型的脚本语言,自身借助谷歌v8引擎得以闻名全世界,也造就了后来的nodejs的诞生.javascript不叫做javascript,为什么这样说呢?javascript是一门修订了很多版本的语言,它是乱的,终于,在ecma的努力下,经过了大量的努力,终于统一所有javascript版本,ecma给自己定的javascript标准叫做ecmascript. 为什么我要选择学习javascript? javascript在目前看来,是

javascript学习

javascript 学习 title: Javascripttags: javascript,学习grammar_cjkRuby: true--- 定义变量 三种形式 var name; var name = "zhang san"; var name; name = "zhang san"; Javascript 的数据类型 6种数据类型 字符串单引号或双引号 var name = "zhang san"; var name = 'zhang

如何系统地学习JavaScript

在过去,JavaScript只是被用来做一些简单的网页效果,比如表单验证.浮动广告等,所以那时候JavaScript并没有受到重视.自从AJAX开始流行后,人们发现利用JavaScript可以给用户带来更好的体验,甚至利用这一优点开发了大型网页游戏,于是这门小语言被重视了起来.现在,很多公司会招专门的JavaScript工程师,通常JavaScript是WEB前端开发的必备技能.简单介绍了JavaScriptr的好处,并不代表大家就会去学习甚至把它学好,兴趣是很关键的,我认为兴趣是最好的老师,它