学习JavaScript高级程序设计第三版第一步。JavaScript简介不光在这一本说介绍,很多书都提及到,我就简单的把重点记录下来,当做整理吧,以便自己及大家观看。

1995年,我出生了,JavaScript也诞生了,JavaScript现在这么强大而且受欢迎,而我却默默无闻,等我把JavaScript学的很牛X的时候希望我也很厉害了哦,起初Netscape Navigator用它完成基本的数据验证任务,而如今具备了与浏览器窗口及其内容等方面所有的交互,拥有了闭包,匿名函数,甚至元编程等特性,听起来这么高大上的东西我就想知道他们的欲望都变强了。

JavaScript简史

1,起初浏览器提交表单,等30秒没有反应,说明你表单中一个字段没有填写好。

2,1995年, Netscape也就是美国网景公司,建立了LiveWire,为了发布和sun公司合作,起名为JavaScript。

3,1996年的时候,微软推出3中不同的JavaScript。1997年经欧洲计算机制造商协会ECMA组织,当时各大公司程序员数月,完成了ECMA-262来定义了ECMAscript。

4,第二年ISO/IEC,国际标准化组织和国际电工委员会,也采用ECMAscript作为标准,讲ECMAscript成为了JavaScript实现的基础。

JavaScript实现

通过简史我们知道,ECMAscript成为了JavaScript实现的基础,一个完整的JavaScript实现由三个不同的部分组成。

1,核心(ECMAscript)   2,文档对象模型(DOM)    3,浏览器对象模型(BOM)

 ECMAscript

大致来说ECMAscript规定了下列组成部分:语法,类型,语句,关键字,保留字,操作符,对象。和web浏览器没有关系,web浏览器就是他的宿主环境,提供基本实现提供语言的扩展,以便语言和环境对接交互,如DOM操作。根据ECMAscript版本改动,从统一一致到兼容,增加正则,语法,数据结构,继承,数据交互新方式等等,成为了一门强大的编程语言。

DOM

文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编辑接口(API)。DOM把整个页面映射为一个多层次节点结构。每个组成部分都是某种类型的节点,而节点包含不同的类型结构。

根据DOM控制页面的内容和结构的主动权,借助DOM提供的API,开发人员可以自由的增删改查任何节点。

DOM也是分级别的。

DOM1由DOM核心和DOM HTML组成。1,核心规定如何映射基于XML的文档结构。2,添加针对HTML的对象方法。

DOM2扩展了鼠标和用户界面事件,范围,遍历,等细分模块。而且通过对象对CSS的支持。

DOM2新类型新接口也给了定义。1, DOM视图:定义跟踪不同的文档视图的接口。2, DOM事件:定义事件与事件处理的接口。3, DOM样式:定义了css元素应用样式的接口。4, DOM遍历和范围:定义遍历和文档树的接口。

DOM3也是对 DOM核心进行扩展。

 BOM

浏览器对象模型BOM.

从根本上讲,BOM只处理浏览器窗口与框架。人们习惯性的把所有针对浏览器的javascript扩展算BOM的一部分,例如这些扩展。

1,弹出新浏览器窗口的功能。

2,移动缩放关闭浏览器窗口的功能。

3,提供浏览器详细信息的navigator对象。

4,提供浏览器所加载页面详细信息的location对象。

5,提供用户显示器分辨率详细信息的screen对象。

6,对cookies支持。

7,像XMLHttpRequest与IE的ActiveXObejct这样的自定义对象.

总体来说javascript就是一种专为网页设计的脚本语言。

ECMAScript,由ECMA-262定义,提供核心语言功能。

DOM,提供访问和操作网页的内容的方法和接口。

BOM ,提供浏览器交互的方法和接口。

让你简洁清晰真正的了解什么是JavaSCript的更多相关文章

  1. 如何写出小而清晰的函数?(JS 版)

    本文以 JavaScript 为例,介绍了该如何优化函数,使函数清晰易读,且更加高效稳定. 软件的复杂度一直在持续增长.代码质量对于保证应用的可靠性.易扩展性非常重要. 然而,几乎每一个开发者,包括我 ...

  2. C11简洁之道:初始化改进

    1.  C++98/03初始化 我们先来总结一下C++98/03的各种不同的初始化情况: //普通数组 ] = {, , }; //POD(plain old data) struct A { int ...

  3. ES6 新特性

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

  4. seajs的使用

    写在前面 seajs是什么? Seajs是一个js文件加载器. 遵循 CMD 规范模块化开发,依赖的自动加载.配置的简洁清晰. 用于Web开发的模块加载工具,提供简单.极致的模块化体验 一:使用 文件 ...

  5. 【原】Bootstrap+Knockout.JS+ASP.Net MVC3+PetaPOCO实现CRUD操作

    1.需求: 1.1)页面要美观大气 1.2)前端代码要简洁清晰,要用MVC或是MVVM框架 1.3)服务端要用MVC框架,要Rest风格 1.4)数据访问要用ORM 2.效果: 2.1)列表 2.2) ...

  6. 【原】移动web资源整理

    2013年初接触移动端,简单做下总结,首先了解下移动web带来的问题 设备更新换代快——低端机遗留下问题.高端机带来新挑战 浏览器厂商不统一——兼容问题多 网络更复杂——弱网络,页面打开慢 低端机性能 ...

  7. 前端之JavaScript基础

    前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...

  8. javascript 基础

    javascript概述: javascript历史: * 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEas ...

  9. 最常用的ES6特性(转)

    最常用的ES6特性 let, const, class, extends, super, arrow functions, template string, destructuring, defaul ...

随机推荐

  1. STS的安装与简单使用

    一,STS下载与安装 1.下载地址:http://spring.io/tools3/sts/all 2.选择对应版本安装或者解压 二,STS简单使用 1.快捷方法 (1)main+alt+/+回车 = ...

  2. [CodeForces 471A] MUH and Sticks

    题目链接:http://codeforces.com/problemset/problem/471/A 题目数据规模1 - 9,可以用一个数组进行计数,减掉出现四次的数,看看还有几个是非零数,有一个就 ...

  3. Vue的介绍及基础指令

    一.什么是Vue Vue.js是一个渐进式 JavaScript 框架 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架方式完成整个web前端项目 为什么要学习Vue 三 ...

  4. jQuery学习笔记(一)

    jQuery 事件 - ready() 方法 实例 在文档加载后激活函数(): $(document).ready(function(){ $(".btn1").click(fun ...

  5. HDU 6186 CS Course(前缀+后缀)

    http://acm.hdu.edu.cn/showproblem.php?pid=6186 题意:给出n个数,共有n次询问,每次询问给出一个数p,求除去第p个数后的n-1个数的&.|.^值. ...

  6. struts2注释返回json数据

  7. Redis学习--Redis的安装与Jedis的简单使用

    Redis安装 关于软件安装,之前是通过记录视频,前段时间发现可以直接阅读官网进行安装,这步省略 启动:前端启动直接启动src目录下redis-server,后端启动修改redis.conf中daem ...

  8. 安装tifffile

    python的opencv和PIL不能很好地处理tiff图像,所以我就转用tifffile 但是tifffile也装了很近,因为我是远控别人的电脑,所以看不太清报错,就自己瞎猜,不过还是装好了 首先去 ...

  9. 依赖注入原理---IoC框架

    先来讲一讲,一个简单的依赖注入例子. 1. 依赖 如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖.例如下面类 Human 中用到一个 Fa ...

  10. myhome vscode plugins

    ├─ 1194979849.code-snippets-0.1.18├─ adamwalzer.string-converter-0.1.1├─ alefragnani.bookmarks-9.3.0 ...