JavaScript-20190411笔记(JavaScript高级程序设计)

学习笔记1:

第 2 章 在 HTML 中使用 JavaScript

2.1 <script>元素

1.async:可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或

等待加载其他脚本。只对外部脚本文件有效。

2.charset:可选。表示通过 src 属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。

3.defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7 及更早版本对嵌入脚本也支持这个属性。

4.language:已废弃。原来用于表示编写代码使用的脚本语言(如 JavaScript、JavaScript1.2或 VBScript)。大多数浏览器会忽略这个属性,因此也没有必要再用了。

5.src:可选。表示包含要执行代码的外部文件。

6.type:可选。可以看成是 language 的替代属性;表示编写代码使用的脚本语言的内容类型(也称为 MIME 类型)。虽然 text/javascript 和 text/ecmascript 都已经不被推荐使用,但人们一直以来使用的都还是 text/javascript。实际上,服务器在传送 JavaScript 文件时使用的MIME 类型通常是 application/x–javascript,但在 type 中设置这个值却可能导致脚本被忽略。另外,在非IE浏览器中还可以使用以下值:application/javascript和application/ ecmascript。考虑到约定俗成和最大限度的浏览器兼容性,目前 type 属性的值依旧还是text/javascript。不过,这个属性并不是必需的,如果没有指定这个属性,则其默认值仍为text/javascript。

<script type="text/javascript" src="example.js"></script>

<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>

2.1.1 标签的位置

现代 Web 应用程序一般都把全部 JavaScript 引用放在<body>元素中页面内容的后面

<!DOCTYPE html> 

<html> 

 <head> 

 <title>Example HTML Page</title> 

 </head> 

 <body> 

 <!-- 这里放内容 --> 

 <script type="text/javascript" src="example1.js"></script> 

 <script type="text/javascript" src="example2.js"></script> 

 </body> 

</html>

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

2.5 小结

把 JavaScript 插入到 HTML 页面中要使用<script>元素。使用这个元素可以把 JavaScript 嵌入到HTML 页面中,让脚本与标记混合在一起;也可以包含外部的 JavaScript 文件。而我们需要注意的地方有:

 在包含外部 JavaScript 文件时,必须将 src 属性设置为指向相应文件的 URL。而这个文件既可以是与包含它的页面位于同一个服务器上的文件,也可以是其他任何域中的文件。

 所有<script>元素都会按照它们在页面中出现的先后顺序依次被解析。在不使用 defer async 属性的情况下,只有在解析完前面<script>元素中的代码之后,才会开始解析后面<script>元素中的代码。

 由于浏览器会先解析完不使用 defer 属性的<script>元素中的代码,然后再解析后面的内容,所以一般应该把<script>元素放在页面最后,即主要内容后面,</body>标签前面。

 使用 defer 属性可以让脚本在文档完全呈现之后再执行。延迟脚本总是按照指定它们的顺序执行

 使用 async 属性可以表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。不能保证异步脚本按照它们在页面中出现的顺序执行。另外,使用<noscript>元素可以指定在不支持脚本的浏览器中显示的替代内容。但在启用了脚的情况下,浏览器不会显示<noscript>元素中的任何内容。

3.2 关键字和保留字


ECMA-262 描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是 ECMAScript的全部关键字(带*号上标的是第 5 版新增的关键字):
break do instanceof typeof 
case else new var 
catch finally return void 
continue for switch while 
debugger* function this with 
default if throw 
delete in try 
 
ECMA-262 还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途,但它们有可能在将来被用作关键字。以下是 ECMA-262 第 3 版定义的全部保留字:
abstract enum int short 
boolean export interface static 
byte extends long super 
char final native synchronized 
class float package throws 
const goto private transient 
debugger implements protected volatile 
double import public 

第 5 版把在非严格模式下运行时的保留字缩减为下列这些:
class enum extends super 
const export import 
在严格模式下,第 5 版还对以下保留字施加了限制:
implements package public 
interface private static 
let protected yield 
注意,let 和 yield 是第 5 版新增的保留字;其他保留字都是第 3 版定义的。为了最大程度地保证兼容性,建议读者将第 3 版定义的保留字外加 let 和 yield 作为编程时的参考。在实现 ECMAScript 3 的 JavaScript 引擎中使用关键字作标识符,会导致“Identifier Expected”错误。而使用保留字作标识符可能会也可能不会导致相同的错误,具体取决于特定的引擎。第 5 版对使用关键字和保留字的规则进行了少许修改。关键字和保留字虽然仍然不能作为标识符使用,但现在可以用作对象的属性名。一般来说,最好都不要使用关键字和保留字作为标识符和属性名,以便与将来的 ECMAScript 版本兼容。除了上面列出的保留字和关键字,ECMA-262 第 5 版对 eval 和 arguments 还施加了限制。在严格模式下,这两个名字也不能作为标识符或属性名,否则会抛出错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值