来自《javascript高级程序设计 第三版:作者Nicholas C. Zakas》的学习笔记(一)

  Javascript是一种专为与网页交互而设计的脚本语言,由下列三个不同部分组成:

  • ECMAScript,提供核心语言功能;
  • 文档对象模型(DOM),提供访问和操作页面内容的方法和接口;
  • 浏览器对象模型(BOM),提供与浏览器交互的方法和接口;

  具体阐述如下:

  ECMA-262定义的ECMAScript与Web浏览器没有依赖关系,定义的只是这门语言的基础,而在此基础之上可以构建更加完善的脚本语言。我们所看到的Web浏览器只是ECMAScript实现可能的宿主环境之一(其它宿主环境包括Node[一种服务器端的Javascript平台]和Adobe Flash)。宿主环境不仅提供基本的ECMAScript实现,同时也会提供语言的扩展,以便语言和环境之间对接交互。而这些扩展——如DOM,则利用ECMAScript核心类型和语法更多更具体的功能。ECMA-262标准规定了这门语言的下列组成部分:语法;类型;语句;关键字;保留字;操作符;对象。

  主要注意的是:ECMAScript受主流Web浏览器支持的情况是有差异的。具体鼓励查阅更多的资料。

  DOM就是把页面映射为一个多层节点结构,如果告诉你这就是平时俗称的“文档树”,估计你就明白了。通过DOM创建的这个表示文档的树形图,我们可以获得控制页面内容和结构的主动权。借助DOM提供的API,我们可以轻松自如地删除、添加、替换或修改任何节点。

  BOM则是使我们可以控制浏览器显示页面以外的部分。从根本上讲,BOM只是处理浏览器窗口和框架,但是人们习惯上也把所有针对浏览器的js扩展算作BOM的一部分,如:弹出新浏览器窗口的功能;移动、缩放和关闭浏览器窗口的功能;navigator、location、screen对象;对cookies的支持;像XMLHttpRequest和IE的ActiveXObject这样的自定义对象。

  注:以上只是对js的整体介绍,以期得到粗略感知!主要是学习笔记之用。

Javascript和ECMAScript二三事的更多相关文章

  1. JavaScript 、ECMAScript、commonJS 发展历史 与标准化发展

    本文介绍下JavaScript和 ECMAScript的诞生及发展历史,以及标准化过程. 一.JavaScript诞生 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版. ...

  2. JavaScript学习记录二

    title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  3. Javascript与ECMAScript

    我们经常习惯性认为Javascript就是ECMAScript,但其实不是这样的. ECMAScript是一种脚本在语法和语义上的标准. 主要包括:语法.类型.语句.关键字.保留字.操作符.对象. 它 ...

  4. javascript、ECMAScript、DOM、BOM关系

    ECMAScript,正式名称为 ECMA 262 和 ISO/IEC 16262,是宿主环境中脚本语言的国际 Web 标准. ECMAScript 规范定义了一种脚本语言实现应该包含的内容:但是,因 ...

  5. JavaScript 入门教程二 在HTML中使用 JavaScript

    一.使用 <script> 元素的方式有两种:直接在页面中嵌入 JavaScript 代码和引用外部 JavaScript 文件. 二.使用内嵌方式,一般写法为: <script t ...

  6. JavaScript基础笔记二

    一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...

  7. JavaScript基本概念(二)

    JavaScript 基本概念(二) 操作符和语句 目录 操作符 一元操作符 位操作符 布尔操作符 乘性操作符 其他操作符 语句部分 说起操作符,回忆下上一篇文章末尾说的话. 操作符 一元操作符 ++ ...

  8. Java并发编程二三事

    Java并发编程二三事 转自我的Github 近日重新翻了一下<Java Concurrency in Practice>故以此文记之. 我觉得Java的并发可以从下面三个点去理解: * ...

  9. linux杂记(十二?) 关于账号和密码的二三事

    关于密码的二三事 关于账号和密码的二三事 久了不更linux的相关知识,实在是懒得想内容点(纯粹是懒).那么今天就来谈谈关于linux密码和账号的重要概念. 假如你的主机遭到入侵,那么对方的第一个侵入 ...

随机推荐

  1. Jersey(1.19.1) - Security

    Security information is available by obtaining the SecurityContext using @Context, which is essentia ...

  2. Agile.Net 组件式开发平台 - 权限管理组件

    RBAC原则       (1)最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集.       (2)责任分离原则可以通过调用相互独立互斥的角色来共同 ...

  3. Cocos2d-x如何控制动作速度

    基本动作和组合动作实现了针对精灵的各种运动和动画效果的改变.但这样的改变速度匀速的.线性的.通过ActionEase及其的派生类和Speed 类我们可以使精灵以非匀速或非线性速度运动,这样看起了效果更 ...

  4. JqGrid在IE8中表头不能分组的解决办法

    修改JqGrid的js脚本: for (d = 0; d < c; d++) { if (b[d] != undefined) { //主要是添加这个判断 if (b[d].startColum ...

  5. 32位系统下使用4GB内存

    64位系统的驱动还有不少缺陷,果断重装回32位系统,但是4gb的内存,明显是浪费啊. 所以必须利用起来. 我没有采用不稳定的破解内核的做法,采用了虚拟硬盘的做法.因为个人觉得这样其实利用效率更高. 方 ...

  6. javascript笔记—— 构造函数

    出处:http://www.cnblogs.com/RicCC/archive/2008/02/15/JavaScript-Object-Model-Execution-Model.html 数据类型 ...

  7. 1_jz2440在linux下烧写裸机程序

    常用的烧写方法有: 1.使用并口工具烧写:接线(参考百问网JZ2440V2开发板使用手册),使用oflash烧写(速度比较慢),可烧写.bin文件,从新上电观察效果.可烧写u_boot. 2.使用op ...

  8. C语言中fgetc、fputc和getc、putc的区别是什么

    看书的时候,发现了这四个函数,想知道他们的不同.结果上网查发现很多人说fgetc.fputc的f代表的是file,就是这两个函数是和文件有关的!但是一看他们的函数声明,如下图: 发现他们的参数里面都有 ...

  9. DTCMS自定义标签,获取所有栏目文章列表TOP,以及文章通用URL

    网站最近更新等地方,发现DTCMS没有获取所有栏目文章列表的标签,只能自己写 思路:获取所有栏目文章列表不难,难点在于linkurl的写法 1.制作获取所有文章列表标签 DTcms.Web.UI\La ...

  10. C#网络通信

    Server: using System.Net; using System.Net.Sockets; using System; using System.Collections.Generic; ...