JS高教笔记(一)

本部分主要包括JavaScript 简介、在HTML中使用JavaScript、基本概念三部分。

JavaScript 简介

JavaScript是一种专为与网页交互而设计的脚本语言,由以下三部分组成:

  • ECMAScript,提供核心语言功能
  • DOM,提供访问和操作 网页内容 的方法和接口
  • BOM,提供与 浏览器 交互的方法和接口,如:
    • 弹出新浏览器窗口的功能;
    • 移动、缩放和关闭浏览器窗口的功能;
    • 提供浏览器详细信息的navigator对象;
    • 提供浏览器所加载页面的详细信息的location对象;
    • 提供用户显示器分辨率详细信息的sreen对象;
    • 对cookie的支持;
    • 像XMLHttpRequest和IE的ActiveXObject这样的自定义对象。

HTML5的出现使BOM实现细节有望朝着兼容性越来越高的方向发展。浏览器兼容性问题实质就是对DOM和BOM的支持不同引起的。


在HTML中使用JavaScript

<script>元素

  • 延迟脚本:使用defer属性,浏览器会立即下载脚本,但会在整个页面解析完毕再执行(即遇到</html>标签后再执行)。最好只包含一个延迟脚本,因为现实中,延迟脚本不一定会按照顺序执行,也不一定会在DOMContentLoaded事件触发前执行。
  • 异步脚本:使用async属性,可以表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。不能保证一部脚本按照它们在页面中出现的顺序执行。

这两个属性均是针对外部脚本,外部脚本可以是域内也可是域外的。

<noscript>元素

可以指定在不支持脚本的浏览器中显示的代替内容。但在启用了脚本的情况下,浏览器不会显示<noscript>元素中的任何内容。

文档模式

DOCTYPE定义了三种DTD(文档类型定义):

  • 严格版本
  • 过渡版本
  • 基于框架的HTML

标准模式与混杂模式:

  • 混杂模式:不写DOCTYPE,让IE的行为与(包含非标准特性的)IE5相同,混杂模式是不可取的,因为其没有兼容性可言;
  • 标准模式:让IE的行为更接近标准行为。

所谓标准模式和混杂模式,是浏览器厂商为了保证浏览器的 向后兼容性 而创建的两种呈现模式。而这两种模式的触发与DOCTYPE是否存在以及使用哪种DTD有关。这两种模式主要影响CSS内容的呈现,但在某些情况下也会影响到JavaScript的解释执行。
HTML5页面以标准模式呈现。

如何检测

可以通过document.compatMODE来检测文档以哪种模式渲染的。

  • 若document.compatMODE值为css1Compat,则为标准模式
  • 若document.compatMODE值为BackCompat则为混杂模式
  • 若document.compatMODE值为undefined则为混杂模式

基本概念

数据类型

  • 5种简单数据类型:Undefined、Null、Boolean、Number、String
  • 1种复杂数据类型:Object,由一组无序的名值对组成。