JavaScript高级程序设计(第三版)_第1&2章笔记

js笔记 专栏收录该内容
24 篇文章 0 订阅

JavaScript高级程序设计(第三版)

第一章 JavaScript实现

JavaScript组成部分:专为网页设计而涉及的脚本语言

  • 核心(ECMA Script)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

ECMAScript

宿主环境:提供基本ECMA Script实现,同时提供该语言扩展,以便语言与环境之间对接交互。

ECMA-262标准规定ECMAScript以下组成部分:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操作符
  • 对象

ECMAScript是对实现该标准规定的各个方面内容的语言的描述

文档对象模型DOM:针对XML但经过扩展用于HTML的应用程序编程接口(API,Application Programming Interface).

DOM把整个页映射成一个多层节点结构

W3C(World Wide Web Consortium,万维网联盟)

DOM级别

DOM1:组成DOM Core & DOM HTML ;目标:映射文档结构

DOM2级:扩充鼠标和用户界面事件、范围、遍历等;通过对象接口增加对CSS的支持;

引入以下新模块:

  • DOM视图 DOM Views:定义了跟踪不同文档视图的接口(比如CSS之前和之后的文档)
  • DOM事件 DOM Events:定义事件和事件处理的接口
  • DOM样式 DOM Style:定义了事件和事件处理的接口
  • DOM的遍历和范围 DOM Traversal and Range:定义遍历和操作文档树的接口

DOM3级:引入以统一方式加载和保存文档的方法-在DOM Load and Save模块中定义

​ 新增验证文档的方法-在DOM验证(DOM Validation)模块中定义

其他DOM标准

  • SVG(可伸缩矢量图,Mathematical Vector Graphic)
  • MathML(数学标记语言,Mathematical Markup Language)
  • SMIL(同步多媒体集成语言,Synchronized Multimedia Integration Language)

BOM 无标准遵循

访问&操作浏览器窗口的浏览器对象模型,处理浏览器窗口和框架。

一些扩展:

  • 弹出浏览器窗口
  • 移动、缩放、关闭浏览器窗口
  • 提供浏览器详细信息的navigator对象
  • 提供浏览器所加载页面的详细信息的location对象
  • 提供用户显示器分辨率详细信息的screen对象
  • 对cookies的支持
  • 类似XMLHttpRequest和IE的ActiveXObject自定义对象

第二章 在HTML中使用JavaScript

<script>元素

<script>元素 使用方法有两种:

  1. 嵌入文件内部

    <script>
        function sayHi(){
        alert("Hi!");
    }
    </script>    
  2. 指向外部文件

    <script type="text/javascript" src="example.js"></script>

标签位置:</body>之前

延迟脚本:HTML 4.01 定义了defer属性

​ 表明脚本在执行时不会影响页面构造,即脚本会被延迟到等整个页面解析完毕后再运行

<!--设置defer属性即告诉浏览器立即下载,但延迟执行。-->
<script type="text/javascript" defer="defer" src="example.js"></script>

​ 第一个延迟脚本先于第二个延迟脚本执行,但两个脚本都先于DOMContentLoaded事件执行($13).

现实生活中,延迟脚本不一定按顺序执行(理论上是),因此最好只包含一个延迟脚本。放在页面底部是最佳选择。

异步脚本:HTML5定义了async属性

​ 类似defer属性,不同于:async不保证按照指定的先后顺序执行

<script type="text/javascript" async src="example.js"></script>

目的:不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。so,建议异步脚本不要在加载期间修改DOM.

​ 异步脚本一定在load事件前执行,但可能会在DOMContentLoaded事件触发之前或之后执行

在XHTML中的用法

XHTML可扩展超文本标记语言(Extensible HyperText Markup Language)

使用HTML实体/CData标记处理 特殊字符,eg:<,>等

使用外部文件优点:

  1. 可维护性:遍及不同HTML页面的JavaScript会造成维护问题。把所有JS文件放在一个文件夹则使开发人员能在不触及HTML标记的情况下集中精力遍及代码。

  2. 可缓存:浏览器能根据具体的设置,缓存link的所有外部JS文件。

    ​ 即若有两个页面使用同一个文件,那么这个文件只需要下载一次。所以最终能加快页面加载的速度。

  3. 适应未来:通过外部文件来包含JS无需考虑XHTML或注释hack。

文档模式

  • 混杂模式quirks mode
  • 标准模式standards mode
  • 准标准模式almost standards mode

<noscript>元素

在以下情况显示:

  • 浏览器不支持脚本
  • 浏览器支持脚本,但脚本被禁用

在启用脚本的浏览器下永不显示

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值