来自《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. CXF(2.7.10) - WSDL2Java generated Client

    以调用 http://www.webxml.com.cn/ 提供的 IpAddressSearchWebService 服务为例. 1. 使用 wsdl2java 工具,根据 wsdl 生成 JAX- ...

  2. Slickflow.NET 开源工作流引擎基础介绍(三) -- 基于HTML5/Bootstrap的Web流程设计器

    1. Slickflow Designer 技术优势 1) 基于HTML5技术,兼容常见浏览器; 2) 纯Javascript / JsPlumb 脚本实现SVG图形化显示; JsPlumb允许您使用 ...

  3. 在Delphi中,关于数组名称

    动态数组数组名代表的是第一个元素的内存地址. 静态数组名称代表的是数组第一个元素的内存位置, 而不是数组第一个元素的内存地址. 但对于静态数组,在某些情况下编译器可能会自动取数组地址,如: funct ...

  4. python - 图例显示中文

    # -*- coding: utf-8 -*- """ Created on Mon Nov 30 13:24:00 2015 @author: jx_luo " ...

  5. PHP学习笔记 - 进阶篇(8)

    PHP学习笔记 - 进阶篇(8) 日期与时间 取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 0 ...

  6. map容器按value值排序

    1 vector<pair<key,value> >类型的容器中存放所有元素,sort(pair默认按照value比较大小?) 2 map<value,key>

  7. 利用Echarts设计一个图表平台(一)

    Echarts是一款百度的开源图表库,里面提供了非常多的图表样式,我们今天要讲的内容是利用这一款开源js图表,制作一个能够动态定制的图表平台. 1)Echarts API介绍 首先我们先来看一下Ech ...

  8. L008-oldboy-mysql-dba-lesson08

    L008-oldboy-mysql-dba-lesson08 xtrabackup安装 [root@web01 installer]# wget https://www.percona.com/dow ...

  9. Nodejs 处理gb2312内容乱码问题

    在使用cheerio处理request模块返回的gb2312网页出现了乱码,从开始一直排查问题,一直排查到request.cheerio都有问题. 首先request会进行一次转码,这里需要设置req ...

  10. php学习问题记录

    1.微信应用开发,Token认证失败,解决方法php页面加上一句代码: header('content-type:text');