javaScript 高级程序设计学习(一)
2017-10-16 14:46
246 查看
javaScript 的组成
可以理解为js 分为三部分 :es,dom,bom;由es 标准定义的escript 与web浏览器没有依赖关系;
escript 规定了语言由下列 组成部分:
语法,类型,语句,关键字,保留字,操作符,对象;
DOM 级别
DOM1 主要目标是映射文档结构;
DOM2 扩充了鼠标和用户界面事件,范围,遍历(迭代dom 文档的方法)等细分模块。增加了css 的支持;
DOM3 进一步扩展了DOM 引入例如以统一方式加载和保存文档的方法 ,验证文档的方法;支持了xml1.0规范;
(ie5中尝试支持dom ie5.5正式支持dom1 )
BOM —浏览器对象模型;
处理浏览器窗口 由于h5 之前BOM 没有标准可以遵循 所以每个浏览器都有自己的实现 所以存在一些差异; BOM 正式纳入html5标砖
在 HTML 中使用 javaScript
< script > 标签的使用异步脚本
async 立即下载脚本 不妨碍页面的其他操做;不保证执行的先后顺序
总结:异步脚本会在load 事件触发前执行 但不保证 DOMContentLoaded 事件触发的前面或后面执行;
延迟脚本
defer 表示延迟到文档完全被解析和显示之后再执行;(立即下载但延迟执行) 仅对外部脚本有效 (h5的规定;但ie4-7 中支持对嵌入脚本的defer属性的支持 ie8 后完全支持h5 规定的行为)
延迟到什么时候执行呢?
延迟到 浏览器遇到
</html>标签后再执行;
总结: h5 规范要求脚本按照他们出现的先后顺序执行 且要 先于 DOMContentLoaded事件(dom 树构建完成)。但现实中 延迟脚本不一定按照顺序执行 也不一定再dom 树构建完成事件触发前执行 (留有疑问)
在xml 中的用法
xml 中的规则比html 中更加严格,要在xml 中 解析 js 代码会遇到一些问题;
例如:
if(a < b)这段代码在xml 会把 小于号 当作开始一个新标签来解析 但作为标签来讲 “<”号 后面又不能跟着空格 所以会导致语法错误;
解决: 1. 用 <来替换 < ;
2.用CData 片段包含
<script> <![CDATA[ //代码片段 ]] </script>
当浏览器不支持CDATA 时 可以
<script> // <![CDATA[ //代码片段 //]] </script>
3.文档模式
ie5.5 引入了文档模式的概念 通过文档类型(doctype)的切换来实现.
最初的两种文档模式分为 混杂,标准 两个模式。
混杂模式会让ie 的行为与ie5相同,两种模式主要影响css内容的呈现 某种情况下也会影响js的解析执行;
如果文档开始处没有文档类型的声明 则会默认开启混杂模式;
<!DOCTYPE html> // html5 文档模式的声明
4.
<noscript>元素
该元素为了解决早期浏览器不支持js 时页面如何 退出的问题;
该标签内的元素只有在一下情况中会展示出来:
浏览器不支持脚本 , 脚本被占用;
<noscript> <p> 本页面需要浏览器支持 javascript</p> </noscript>
本篇是我个人对书中对应内容的记录,用作笔记作为自己的总结 不是章节以及小节下的所有内容
相关文章推荐
- JavaScript高级程序设计(第2版) 学习笔记:(五)js获取窗口大小
- JavaScript高级程序设计学习笔记--变量、作用域和内存问题(一) (变量、作用域)
- JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
- JavaScript高级程序设计(第3版)学习笔记 概述
- JavaScript高级程序设计(第3版)学习笔记11 内建js对象
- js-JavaScript高级程序设计学习笔记17
- [Javascript 高级程序设计]学习心得记录 函数参数传递与引用
- JavaScript高级程序设计学习笔记--高级技巧
- js-JavaScript高级程序设计学习笔记20
- js-JavaScript高级程序设计学习笔记4
- [Javascript 高级程序设计]学习心得记录5 操作符和语句
- JavaScript高级程序设计(第三版) 学习笔记(一)JavaScript简介
- JavaScript高级程序设计(第三版)学习笔记6、7章
- javascript高级程序设计学习笔记
- JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
- javascript高级程序设计第三版 第4章 基本类型和引用类型的值 学习笔记
- JavaScript高级程序设计 学习笔记 js高级技巧
- js-JavaScript高级程序设计学习笔记2
- javascript高级程序设计(第三版)-第三章 数据类型-学习笔记
- JavaScript高级程序设计学习笔记第五章--引用类型