博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO通读JS高程系列(1)--基本概念
阅读量:5826 次
发布时间:2019-06-18

本文共 2352 字,大约阅读时间需要 7 分钟。

《JavaScript高级程序设计》不得不说一本很好的书,自己之前零零星星看了有两三遍,主要集中在对象,原型,原型链这些内容里面。忽略了一些基本的东西,我想好多童鞋应该和我有一样的情况。这个系列的目的就是查漏补缺,有不足的地方希望多多指教,如果大家喜欢,请给我点个赞,我会持续的更新下去。当然,不管你看不看,我都会慢慢的更下去,毕竟也是个自我学习的过程。如果看了对你有一点点帮助,我也会很开心。

一,JavaScript的实现(区别ECMAScript

        虽然JavaScriptECMAScript通常被表示为相同的含义。但是JavaScript的含义却比ECMA-262中规定的多得多。所以一个完整的JavaScript实现是有三部分组成的。

1,核心(ECAMScript) 2,文档对象模型(DOM) 3,浏览器对象模型(BOM)复制代码

ECMAScriptWeb 浏览器没有依赖关系,我们常见的 Web 浏览器只是 ECMAScript 实现可能的宿主环境之一.

是否可以理解为ECMAScript包含于JavaScript之中呢?

javaScript 是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: 

 ECMAScript,由 ECMA-262 定义,提供核心语言功能; 文档对象模型(DOM),提供访问和操作网页内容的方法和接口; 浏览器对象模型(BOM),提供与浏览器交互的方法和接口。复制代码

二, ECMA-262 标准规定了那些内容

大致说来,它规定了这 门语言的下列组成部分:

 语法 类型 语句 关键字 保留字 操作符 对象复制代码

三,<script>标签

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

1,直接在页面中嵌入 JavaScript 代码和包含外部 JavaScript 文件 在使用<script>元素嵌入 JavaScript 代码时,只须为<script>指定 type 属性。然后,像下面这 样把 JavaScript 代码直接放在元素内部即可: 

复制代码

 包含在<script>元素内部的 JavaScript 代码将被从上至下依次解释。就拿前面这个例子来说,解释 器会解释一个函数的定义,然后将该定义保存在自己的环境当中。在解释器对<script>元素内部的所 有代码求值完毕以前,页面中的其余内容都不会被浏览器加载或显示。

上面的代码执行之后,如下图所示:

 因为按照解析嵌入式代码的规则,当浏览器遇到字符串"</script>"时,就会认为那是结束的 </script>标签。而通过转义字符“/”可以解决这个问题,例如: 

复制代码

 这样写代码浏览器可以接受,因而也就不会导致错误了。 

2,外部引入,相信大家都很熟悉了。

标签的位置

这种做法的目的就是把所有外部文件(包括 CSS 文件和 JavaScript 文件)的引用都放在相同的地方。 可是,在文档的<head>元素中包含所有 JavaScript 文件,意味着必须等到全部 JavaScript 代码都被下载、 解析和执行完成以后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。对于 那些需要很多 JavaScript 代码的页面来说,这无疑会导致浏览器在呈现页面时出现明显的延迟,而延迟 期间的浏览器窗口中将是一片空白。为了避免这个问题,现代 Web 应用程序一般都把全部 JavaScript 引 用放在<body>元素中页面内容的后面, 

Example HTML Page
复制代码

这样,在解析包含的 JavaScript 代码之前,页面的内容将完全呈现在浏览器中。而用户也会因为浏 览器窗口显示空白页面的时间缩短而感到打开页面的速度加快了 

延迟脚本

 HTML 4.01<script>标签定义了 defer 属性。这个属性的用途是表明脚本在执行时不会影响页 面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。因此,在<script>元素中设置 defer 属性,相当于告诉浏览器立即下载,但延迟执行。 

Example HTML Page
复制代码

 在这个例子中,虽然我们把<script>元素放在了文档的<head>元素中,但其中包含的脚本将延迟 到浏览器遇到</html>标签后再执行 异步脚本 HTML5 <script>元素定义了 async 属性。这个属性与 defer 属性类似,都用于改变处理脚本的行为。同样与 defer 类似, async 只适用于外部脚本文件,并告诉浏览器立即下载文件。但与 defer 不同的是,标记为 async 的脚本并不保证按照指定它们的先后顺序执行 

Example HTML Page
复制代码

 在以上代码中,第二个脚本文件可能会在第一个脚本文件之前执行。因此,确保两者之间互不依赖 非常重要。  

文档模式

IE5.5 引入了文档模式的概念,而这个概念是通过使用文档类型(doctype)切换实现的 最初的两种文档模式是: 混杂模式(quirks mode)和标准模式(standards mode)

 IE 又提出一种所谓的准标准模 式(almost standards mode)。这种模式下的浏览器特性有很多都是符合标准的,但也不尽然。不标准的 地方主要体现在处理图片间隙的时候 

对于标准模式,可以通过使用下面任何一种文档类型来开启:

//只写了H5的,其他的可以查JS高程书本第17页复制代码

转载于:https://juejin.im/post/5b0f4bdcf265da0923154e4c

你可能感兴趣的文章
zabbix监控php状态(四)
查看>>
实战Django:小型CMS Part2
查看>>
原创]windows server 2012 AD架构试验系列 – 16更改DC计算机名
查看>>
统治世界的十大算法
查看>>
linux svn安装和配置
查看>>
SSH中调用另一action的方法(chain,redirect)
查看>>
数据库基础
查看>>
表格排序
查看>>
关于Android四大组件的学习总结
查看>>
java只能的round,ceil,floor方法的使用
查看>>
由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件...
查看>>
新开的博客,为自己祝贺一下
查看>>
【CQOI2011】放棋子
查看>>
采用JXL包进行EXCEL数据写入操作
查看>>
一周总结
查看>>
将txt文件转化为json进行操作
查看>>
线性表4 - 数据结构和算法09
查看>>
C语言数据类型char
查看>>
Online Patching--EBS R12.2最大的改进
查看>>
Binary Search Tree Iterator leetcode
查看>>