Javascript和ECMAScript二三事
来自《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二三事的更多相关文章
- JavaScript 、ECMAScript、commonJS 发展历史 与标准化发展
本文介绍下JavaScript和 ECMAScript的诞生及发展历史,以及标准化过程. 一.JavaScript诞生 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版. ...
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- Javascript与ECMAScript
我们经常习惯性认为Javascript就是ECMAScript,但其实不是这样的. ECMAScript是一种脚本在语法和语义上的标准. 主要包括:语法.类型.语句.关键字.保留字.操作符.对象. 它 ...
- javascript、ECMAScript、DOM、BOM关系
ECMAScript,正式名称为 ECMA 262 和 ISO/IEC 16262,是宿主环境中脚本语言的国际 Web 标准. ECMAScript 规范定义了一种脚本语言实现应该包含的内容:但是,因 ...
- JavaScript 入门教程二 在HTML中使用 JavaScript
一.使用 <script> 元素的方式有两种:直接在页面中嵌入 JavaScript 代码和引用外部 JavaScript 文件. 二.使用内嵌方式,一般写法为: <script t ...
- JavaScript基础笔记二
一.函数返回值1.什么是函数返回值 函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...
- JavaScript基本概念(二)
JavaScript 基本概念(二) 操作符和语句 目录 操作符 一元操作符 位操作符 布尔操作符 乘性操作符 其他操作符 语句部分 说起操作符,回忆下上一篇文章末尾说的话. 操作符 一元操作符 ++ ...
- Java并发编程二三事
Java并发编程二三事 转自我的Github 近日重新翻了一下<Java Concurrency in Practice>故以此文记之. 我觉得Java的并发可以从下面三个点去理解: * ...
- linux杂记(十二?) 关于账号和密码的二三事
关于密码的二三事 关于账号和密码的二三事 久了不更linux的相关知识,实在是懒得想内容点(纯粹是懒).那么今天就来谈谈关于linux密码和账号的重要概念. 假如你的主机遭到入侵,那么对方的第一个侵入 ...
随机推荐
- Git CMD - rm: Remove files from the working tree and from the index
命令格式 git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>… 命令参 ...
- ZooKeeper(3.4.5) - 开源客户端 Curator(2.7.0) 的简单示例
一.创建会话 1. 创建会话 package com.huey.dream.demo; import org.apache.curator.framework.CuratorFramework; im ...
- JSP之request对象
在请求转发时,我们需要把一些数据传递到转发后的页面进行处理.这时就需要使用request对象的setAttribute()方法将数据保存到request范围内的变量中. 示例:创建index.jsp文 ...
- C# 微信扫码支付API (微信扫码支付模式二)
一.SDK下载地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1,下载.NET C#版本: 二.微信相关设置:(微信扫码 ...
- 学习 .net 的一些主要网站
学习 .net 的一些主要网站 来自 http://www.cnblogs.com/trymybest121/articles/500176.html http://msdn.microsoft. ...
- Atl笔记二:BEGIN_COM_MAP
1,offsetofclass获取基类相对于子类的偏移位置. #define _ATL_PACKING 8#define offsetofclass(base, derived) ((DWORD_PT ...
- Linux 内核 链表 的简单模拟(1)
第零章:扯扯淡 出一个有意思的题目:用一个宏定义FIND求一个结构体struct里某个变量相对struc的编移量,如 struct student { int a; //FIND(struct stu ...
- DTCMS中部分IE8不支持webupload上传附件的控件,更改为ajaxfileupload
dialog\dialog_attach.aspx <!DOCTYPE html> <html> <head> <meta http-equiv=" ...
- Media Queries——媒体类型
媒体类型(Media Type)在CSS2中是一个常见的属性,也是一个非常有用的属性,可以通过媒体类型对不同的设备指定不同的样式. 在CSS2中常碰到的就是all(全部).screen(屏幕).pri ...
- Redis 与 数据库处理数据的两种模式(转)
Redis 是一个高性能的key-value数据库. redis的出现,很大程度补偿了memcached这类key-value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用.它提供了Pyt ...