来自《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. C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想

    如果你接触过<设计模式>.软件架构的编程思想,就会知道优秀的设计准则:“组合优于继承的”. 这句话很简短,但开始学习OOP的时候,真切的是—-不太好理解(以我个人当初学习为例). OOP的 ...

  2. C#学习笔记之线程 - 使用线程

    基于事件的异步模式 (EAP -- The Event-Based Asynchronous Pattern) EAP提供了一个简单的办法,通过它的类能够提供多线程能力,而不需显式的开启或管理线程.它 ...

  3. Entity Framework 之三层架构

    今天,我们谈一下如何用Entity Framework构建一个三层架构.即包括DAL层,BLL层和MODEL层.我们先看一下目录结构,如下图: 目录中,我们有Web层,AVON.DMS.Model是实 ...

  4. FreeMarker-Built-ins for strings

    http://freemarker.org/docs/ref_builtins_string.html Page Contents boolean cap_first capitalize chop_ ...

  5. 十天学会零基础入门学习Photoshop课程(在线观看)

    适合人群:在校学生 在职工作者 淘宝运营者等一系列会操作电脑的人群 课程目录 试学课 课时11前言 8分钟1秒 课时22工作界面 试学课 课时33文件的新建 试学课 课时44文档保存 11分钟24秒  ...

  6. 【原】Oracle拼接字段

    select FLIGHT_DATE, replace(wm_concat(FLIGHT_NO), ',', '*') FLIGHT_NO from T2001 group by FLIGHT_DAT ...

  7. Winform 异步更新listbox

    public partial class Form1 : Form { private BackgroundWorker bw; public Form1() { InitializeComponen ...

  8. Sublime Text 3 入门(插件控制台安装)

    下载地址:http://www.sublimetext.com/3 以windows 32位系统为例 直接点击Windows下载: Package Control插件控制台(有这个才可以安装插件) h ...

  9. Kakfa揭秘 Day7 Producer源码解密

    Kakfa揭秘 Day7 Producer源码解密 今天我们来研究下Producer.Producer的主要作用就是向Kafka的brokers发送数据.从思考角度,为了简化思考过程,可以简化为一个单 ...

  10. 针对PIL中ImageDraw.py报错的解决方案

    linux mint 13开始就发现这个问题了,一直不知道怎么解决,今天突然发现了解决方案,来分享给大家 下面是修改对比,自己根据修改,这个是系统文件,需要root权限,路径/usr/lib/pyth ...