javaScript 高级程序设计学习(一)

来源:互联网 发布:优衣库官方网络旗舰店 编辑:程序博客网 时间:2024/06/05 19:15

javaScript 的组成

  1. 可以理解为js 分为三部分 :es,dom,bom;
    由es 标准定义的escript 与web浏览器没有依赖关系;
    escript 规定了语言由下列 组成部分:
    语法,类型,语句,关键字,保留字,操作符,对象;
  2. DOM 级别
    DOM1 主要目标是映射文档结构;
    DOM2 扩充了鼠标和用户界面事件,范围,遍历(迭代dom 文档的方法)等细分模块。增加了css 的支持;
    DOM3 进一步扩展了DOM 引入例如以统一方式加载和保存文档的方法 ,验证文档的方法;支持了xml1.0规范;
    (ie5中尝试支持dom ie5.5正式支持dom1 )
  3. BOM —浏览器对象模型;
    处理浏览器窗口 由于h5 之前BOM 没有标准可以遵循 所以每个浏览器都有自己的实现 所以存在一些差异; BOM 正式纳入html5标砖

在 HTML 中使用 javaScript

  1. < script > 标签的使用

    异步脚本
    async 立即下载脚本 不妨碍页面的其他操做;不保证执行的先后顺序
    总结:异步脚本会在load 事件触发前执行 但不保证 DOMContentLoaded 事件触发的前面或后面执行;

    延迟脚本
    defer 表示延迟到文档完全被解析和显示之后再执行;(立即下载但延迟执行) 仅对外部脚本有效 (h5的规定;但ie4-7 中支持对嵌入脚本的defer属性的支持 ie8 后完全支持h5 规定的行为)
    延迟到什么时候执行呢?
    延迟到 浏览器遇到</html>标签后再执行;
    总结: h5 规范要求脚本按照他们出现的先后顺序执行 且要 先于 DOMContentLoaded事件(dom 树构建完成)。但现实中 延迟脚本不一定按照顺序执行 也不一定再dom 树构建完成事件触发前执行 (留有疑问)

  2. 在xml 中的用法

    xml 中的规则比html 中更加严格,要在xml 中 解析 js 代码会遇到一些问题;
    例如:if(a < b) 这段代码在xml 会把 小于号 当作开始一个新标签来解析 但作为标签来讲 “<”号 后面又不能跟着空格 所以会导致语法错误;
    解决: 1. 用 <来替换 < ;
    2.用CData 片段包含

   <script>   <![CDATA[     //代码片段   ]]   </script> 
  1. 当浏览器不支持CDATA 时 可以
 <script>  // <![CDATA[     //代码片段   //]]   </script> 

3.文档模式

ie5.5 引入了文档模式的概念 通过文档类型(doctype)的切换来实现.
最初的两种文档模式分为 混杂标准 两个模式。
混杂模式会让ie 的行为与ie5相同,两种模式主要影响css内容的呈现 某种情况下也会影响js的解析执行;
如果文档开始处没有文档类型的声明 则会默认开启混杂模式;

<!DOCTYPE html> // html5 文档模式的声明

4.<noscript>元素
该元素为了解决早期浏览器不支持js 时页面如何 退出的问题;
该标签内的元素只有在一下情况中会展示出来:
浏览器不支持脚本 , 脚本被占用;

<noscript> <p> 本页面需要浏览器支持 javascript</p></noscript>

本篇是我个人对书中对应内容的记录,用作笔记作为自己的总结 不是章节以及小节下的所有内容

原创粉丝点击