起于客户端数据验证
特性
----闭包
----匿名函数
----元编程等
----等
想要全面理解和掌握JavaScript
----本质
----历史
----局限性

ECMAScript 脚本语言标准

JavaScript实现

完整的JavaScript由三部分组成:
----核心(ECMAScript)
----文档对象模型(DOM)
----浏览器对象模型(BOM)

ECMAScript
----与web浏览器没有依赖关系
----不包含输入输出
----只定义这门语言的基础
----web浏览器只是宿主环境之一

--宿主环境不仅提供基本的ECMAScript实现,也提供语言的扩展,
以便语言与环境之间的对接交互

--扩展如 DOM 利用ECMAScript核心类型和语法提供更多更具体的功能

其他宿主环境
----node
----adobe flash

ECMA大致定义了
---语法
---类型
---语句
---关键字
---保留字
---操作符
---对象

ECMA-262对ECMAScipt兼容定义
---支持ECMA-262描述的所以 类型、值、对象、属性、函数以及程序语法和语义
---支持Unicode字符标准
//兼容的实现还可以进行下列扩展
---添加ECMA-262没有描述的 更多类型、值、对象、属性、函数
//新增特性主要指,标准中没有规定的新对象和对象的新属性
---支持ECMA-262没有定义的 程序和正则表达式语法
//也就是说 可以修改和扩展内置的正则表达式语法

--兼容实现的灵活也是ECMAScript受欢迎的原因之一

文档对象模型(DOM Document Object Model)
---针对XML但经过扩展用于HTML的应用程序编程接口(API application programming interface)
---把整个页面映射为多层节点结构

Web通信标准的W3C(王维网联盟)制定DOM标准

DOM1 level1
---dom 核心//规定如何映射基于xml的文档结构,简化对文档中任意部分的访问和操作
---dom html//扩展 添加了针对html的对象和方法

DOM2
---鼠标和用户界面事件,范围,便利等新模块
-----dom视图(dom views)定义了跟踪不同文档视图的接口
-----事件(Events) 事件和事件处理接口
-----样式(Style) css为元素应用样式接口
-----遍历和范围(Traversal Range)遍历和操作文档树的接口
---通过对象接口增加了 css支持

DOM3
---dom加载和保存(load and save)
---验证文档(dom validation)

其他dom标准
---SVG (scalable vector graphic 可伸缩矢量图)
---MathML(Mathematical Markup Language 数学标记语言)
---SMLIL(Synchronized Multimedia Integration Language 同步多媒体集成语言)

BOM浏览器对象模型
---控制浏览器显示页面以外的部分
---html5(w3c的) 致力于把BOM功能写入正式规范

根本上BOM只处理浏览器窗口和框架 但是人们习惯把所有针对浏览器的JavaScript扩展算作bom的一本分
---弹出新浏览器窗口
---移动,缩放,关闭浏览器窗口
---提供浏览器详细信息的navigator对象
---提供浏览器所加载页面的详细信息的locatio对象
---提供胡勇显示器分辨率详细信息的screen对象
---对cookie的支持
---像XMLHttpRequest和IE的ActiveXObject这样的自定义对象

小结

JavaScript是一种专为与网页交互而设计的脚本语言

由三个不同的部分组成:
---ECMAScript 由ECMA-262定义,提供核心语言功能
---文档对象模型(DOM),提供访问和操作网页内容的方法和接口
---浏览器对象模型(BOM),提供与浏览器交互的方法和接口

《JavaScript高级程序设计》读书笔记(一)JavaScript简介的更多相关文章

  1. javascript高级程序设计读书笔记-事件(一)

    读书笔记,写的很乱   事件处理程序   事件处理程序分为三种: 1.html事件2. DOM0级,3,DOM2级别  没有DOM1 同样的事件 DOM0会顶掉html事件   因为他们都是属性  而 ...

  2. JavaScript高级程序设计-读书笔记(1)

    第1章 JavaScript简介 JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: l        ECMAScript:提供核心语言功能: l        文 ...

  3. JavaScript高级程序设计 读书笔记

    第一章 JavaScript 简介 第二章 Html中使用JavaScript 第三章 基本概念 第四章 变量,作用域,内存 第五章 引用类型 第六章 面向对象 第七章 函数表达式 第八章 BOM 第 ...

  4. javascript高级程序设计读书笔记

    第2章  在html中使用javascript 一般都会把js引用文件放在</body>前面,而不是放在<head>里, 目的是最后读取js文件以提高网页载入速度. 引用js文 ...

  5. Javascript高级程序设计读书笔记(第六章)

    第6章  面向对象的程序设计 6.2 创建对象 创建某个类的实例,必须使用new操作符调用构造函数会经历以下四个步骤: 创建一个新对象: 将构造函数的作用域赋给新对象: 执行构造函数中的代码: 返回新 ...

  6. JavaScript高级程序设计-读书笔记(7)

    第22章 高级技巧 1.高级函数 (1)安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串. ...

  7. JavaScript高级程序设计 读书笔记 第一章

    JavaScript是一种专门为与网页交互而设计的脚本语言 JavaScript实现 ECMAscript---核心 DOM---文档对象模型 BOM---浏览器对象模型

  8. Javascript高级程序设计读书笔记(第二章)

    第二章  在HTML中使用Javascript 2.1<script>元素 延迟脚本(defer = "defer")表明脚本在执行时不会影响页面的构造,脚本会被延迟到 ...

  9. 《JavaScript高级程序设计》笔记:JavaScript简介(一)

    javascript从一个简单的输入验证器发展成为一门强大的编程语言,完全出乎人们的意料. javascript实现一个完整的javascript实现应该由下列三个不同的部分组成:1:核心(ECMAS ...

  10. JavaScript高级程序设计-读书笔记(6)

    第20章 JSON JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量 JSON的语法可以表示一下三种类型的值 l        简单值:使用与JavaScript相同的语法,可以在JS ...

随机推荐

  1. (BFS)1097: Yuchang and Zixiang ‘s maze

    1097: Yuchang and Zixiang ‘s maze Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 863 Solved: 149   De ...

  2. Redis读写分离的简单配置

    Master进行写操作,可能只需要一台Master.进行写操作,关闭数据持久化. Slave进行读操作,可能需要多台Slave.进行读操作,打开数据持久化. 假设初始配置有Master服务器为A,sl ...

  3. 转载UUID.randomUUID()

    UUID.randomUUID()生成唯一识别码 原创 清晨-阳光zx 最后发布于2019-04-11 20:54:40 阅读数 3039 收藏 发布于2019-04-11 20:54:40 分类专栏 ...

  4. web前端技能考核(阿里巴巴)

  5. Spring Boot 框架 - 快速创建Spring Boot应用

    使用Spring的项目创建向导创建一个Spring Boot项目 创建完成目录 目录文件说明: 主启动程序已生成 resources文件夹中目录结构 static:保存所有的静态资源,例如js,css ...

  6. mysql测试点

    前言 性能测试过程中,数据库相关指标的监控是不可忽视的,在这里我们就MySQL的监控配置及重点涉及性能的一些参数进行说明. 在笔者的日常性能测试过程中,重点关注了这些参数,但不代表仅仅只有这些参数对性 ...

  7. Chrome无法从该网站添加应用,扩展程序和用户脚本

    #开始 更新谷歌浏览器之后发现不能通过本地 crx文件安装离线插件了 网上找到的方法有两种 一个就是通过添加浏览器参数解决 但是这个方法我尝试之后失败了 第二个方法就是用工具安装 具体如何太麻烦了就没 ...

  8. Groovy脚本-通用SQL开关

    备注:使用Groovy语言进行编写,看不懂的同学请先了解Groovy脚本. Groovy学习地址:https://www.cnblogs.com/tiechui2015/p/10828457.html ...

  9. mybatis 源码分析--日志分析

    1. MyBatis 没有提供日志实现,需要接入第三方的日志组件,但是第三方的日志组件都各自的Log级别,而不相同 实现方式:适配器模式   Slf4jImpl 2. 自动扫描日志实现,并且第三方日志 ...

  10. mac系统,docker下载安装

    1. docker安装文档 2. Docker下安装SQL Server