您的位置:首页 > Web前端 > JavaScript

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>


本篇是我个人对书中对应内容的记录,用作笔记作为自己的总结 不是章节以及小节下的所有内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息