《JavaScript高级程序设计》读书笔记(一)JavaScript简介
起于客户端数据验证
特性
----闭包
----匿名函数
----元编程等
----等
想要全面理解和掌握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简介的更多相关文章
- javascript高级程序设计读书笔记-事件(一)
读书笔记,写的很乱 事件处理程序 事件处理程序分为三种: 1.html事件2. DOM0级,3,DOM2级别 没有DOM1 同样的事件 DOM0会顶掉html事件 因为他们都是属性 而 ...
- JavaScript高级程序设计-读书笔记(1)
第1章 JavaScript简介 JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: l ECMAScript:提供核心语言功能: l 文 ...
- JavaScript高级程序设计 读书笔记
第一章 JavaScript 简介 第二章 Html中使用JavaScript 第三章 基本概念 第四章 变量,作用域,内存 第五章 引用类型 第六章 面向对象 第七章 函数表达式 第八章 BOM 第 ...
- javascript高级程序设计读书笔记
第2章 在html中使用javascript 一般都会把js引用文件放在</body>前面,而不是放在<head>里, 目的是最后读取js文件以提高网页载入速度. 引用js文 ...
- Javascript高级程序设计读书笔记(第六章)
第6章 面向对象的程序设计 6.2 创建对象 创建某个类的实例,必须使用new操作符调用构造函数会经历以下四个步骤: 创建一个新对象: 将构造函数的作用域赋给新对象: 执行构造函数中的代码: 返回新 ...
- JavaScript高级程序设计-读书笔记(7)
第22章 高级技巧 1.高级函数 (1)安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串. ...
- JavaScript高级程序设计 读书笔记 第一章
JavaScript是一种专门为与网页交互而设计的脚本语言 JavaScript实现 ECMAscript---核心 DOM---文档对象模型 BOM---浏览器对象模型
- Javascript高级程序设计读书笔记(第二章)
第二章 在HTML中使用Javascript 2.1<script>元素 延迟脚本(defer = "defer")表明脚本在执行时不会影响页面的构造,脚本会被延迟到 ...
- 《JavaScript高级程序设计》笔记:JavaScript简介(一)
javascript从一个简单的输入验证器发展成为一门强大的编程语言,完全出乎人们的意料. javascript实现一个完整的javascript实现应该由下列三个不同的部分组成:1:核心(ECMAS ...
- JavaScript高级程序设计-读书笔记(6)
第20章 JSON JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量 JSON的语法可以表示一下三种类型的值 l 简单值:使用与JavaScript相同的语法,可以在JS ...
随机推荐
- FreeRTOS学习笔记3:内核控制及开启调度器
内核控制函数API 应用层中不会用到taskYIELD() //任务切换.会自动切换当前就绪表里优先级最高的任务 临界区 //不能被打断的代码段任务中进入临界区任务中退出临界区中断服务进入临界区中断服 ...
- 安装CDH第三方依赖包
安装CDH第三方依赖包: yum install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyr ...
- sqli-libs(23-28a关)
Less_23 首先在php文件中加入echo $sql;echo "<br>"; 方法一: :%00 输入?id=1’,报错,说明存在注入漏洞: 输入?id=1' - ...
- input的number类型只能输入正数,禁止负数输入
<input type="number" max="10" min='1' id='number'> <script> document ...
- C语言程序的错误和警告
一段C语言代码,在编译.链接和运行的各个阶段都可能会出现问题.编译器只能检查编译和链接阶段出现的问题,而可执行程序已经脱离了编译器,运行阶段出现问题编译器是无能为力的. 如果我们编写的代码正确,运行时 ...
- The Preliminary Contest for ICPC Asia Xuzhou 2019 J Random Access Iterator (树形DP)
每次循环向下寻找孩子时,随机选取一个孩子,设dp[u]为从u出发,不能得出正确答案的概率,则从u出发,走一次的情况下不能得出正确答案的概率是 P = (dp[v1]+dp[v2]+dp[v3]+--d ...
- svn怎么修改用户名和密码
链接:https://blog.csdn.net/qq_36826506/article/details/80915431
- layer.open中父页面向子页面传值
1.咱先看图说话 父list.jsp 子operate.jsp实现的代码1 在父页面上完成对子页面的数据渲染 function setData(data) { var lay=layer.open({ ...
- 吴裕雄 PYTHON 人工智能——智能医疗系统后台智能分诊模块及系统健康养生公告简约版代码展示
#coding:utf-8 import sys import cx_Oracle import numpy as np import pandas as pd import tensorflow a ...
- springboot笔记-1.自动化配置的关键
最近发现看过的东西容易忘,但是写一遍之后印象倒是会深刻的多. 总所周知springboot极大的简化了java开发繁琐性,而其最大的优势应该就是自动化配置了.比如要使用redis,我们直接引入相关的包 ...