JavaScript学习:JavaScript引入方式

只要一提到把JavaScript放到网页中,就不得不涉及Web的语言核心——HTML。

向HTML页面中插入JavaScript的主要方法,就是使用<script>元素。

HTML4.0.1为<script>定义了下列6个属性:

  • async:可选。表示应该立即下载脚本,但不应该妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
  • charset:可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。
  • defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7及更早版本对嵌入脚本也支持这个属性。
  • language:已废弃。原来用于表示编写代码使用的脚本语言(如JavaScript、JavaScript1.2或VBScript)。大多数浏览器会忽略这个属性,因此也没有必要再用了。
  • src:可选。表示包含要执行代码的外部文件。
  • 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>元素的方式有两种:

  1. 直接在页面中嵌入JavaScript代码
  2. 包含外部JavaScript文件

包含在<script>元素内部的JavaScript代码将被从上至下依次解释。在解释器执行<script>元素内部的所有代码求职完毕以前,页面中的其余内容都不会被浏览器加载或显示。

外部文件被加载到当前页面中,在解析外部JavaScript文件(包括下载该文件)时,页面的处理也会暂时停止。

(1)直接在页面中嵌入JavaScript代码

在使用<script>元素嵌入JavaScript代码时,只需为<script>指定type属性。然后,像下面这样把JavaScript代码直接放在元素内部即可:

<script type="text/javascript">
  alert("hello");
</script>

在使用<script>嵌入JavaScript代码时,记住不要在代码中的任何地方出现“</script>”字符串。因为按照解析嵌入式代码的规则,当浏览器遇到字符串“</script>”时,就会认为那是结束的</script>标签,可以通过转义字符“\”解决这个问题:

<script type="text/javascript">
  alert("<\/script>");
</script>

(2)包含外部JavaScript文件

如果要通过<script>元素来包含外部JavaScript文件,那么src属性就是必需的。这个属性的值是指向外部JavaScript文件的链接。例如:

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

带有src属性的<script>元素不应该在其<script>和</script>标签之间再包含额外的JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。

注:按照惯例,外部JavaScript文件带有.js扩展名。但这个扩展名不是必须的,因为浏览器不会检查包含JavaScript的文件的扩展名。这样一来,使用JSP、PHP或其他服务端语言动态生成JavaScript代码也就成为了可能。但是,服务器通常还是需要看扩展名决定为响应应用哪种MIME类型。如果不使用.js扩展名,请确保服务器能返回正确的MIME类型。

(3)标签的位置

按照传统的做法,所有<script>元素都应该放在页面的<head>元素中,这种做法的目的就是把所有外部文(包括CSS文件和JavaScript文件)的引用都放在相同的地方。

可是,在文档的<head>元素中包含所有JavaScript文件,意味着必须等到全部JavaScript代码都被下载、解析和执行完成以后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容。

对于那些需要很多JavaScript代码的页面来说,这无疑会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一片空白。

为了避免这个问题,现代Web应用程序一般都把全部JavaScript引用放在<body>元素中页面内容的后面,也就是</body>结束标签前。

时间: 2024-10-27 11:47:25

JavaScript学习:JavaScript引入方式的相关文章

JavaScript学习——JavaScript对象

JavaScript 对象 JavaScript 对象是拥有属性和方法的数据. 真实生活中的对象,属性和方法 真实生活中,一辆汽车是一个对象. 对象有它的属性,如重量和颜色等,方法有启动停止等: 所有汽车都有这些属性,但是每款车的属性都不尽相同. 所有汽车都拥有这些方法,但是它们被执行的时间都不尽相同. 在 JavaScript中,几乎所有的事物都是对象. 对象定义 可以使用字符来定义和创建 JavaScript 对象: var person = {firstName:"Joy", l

JavaScript学习——JavaScript语法 语句

JavaScript 语法 JavaScript 是一个脚本语言. 它是一个轻量级,但功能强大的编程语言. JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14. 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e). 3.14 1001 123e5 字符串(String)字面量 可以使用单引号或双引号: <!DOCTYPE html> <html> <head> <meta charset="utf-8&qu

JavaScript学习---JavaScript深入学习

对象的概念 对象分类[3种]:     ECMScript(JS自己的对象), BOM(浏览器对象)    DOM(文档对象,操作HTML的) 11种内置对象:       Array ,String , Date, Math, Boolean, Number  Function, Global, Error, RegExp , Object 注意: JavaScript中除了Null和undefined以外,其余均为对象 ECMScript对象 Object对象:ECMAScript 中的所有

JavaScript学习——JavaScript 变量 与 数据类型

JavaScript 变量 变量是用于存储信息的"容器". var x=5; var y=6; var z=x+y; 在代数中,我们使用字母(比如 x)来保存值(比如 5). 通过上面的表达式 z=x+y,我们能够计算出 z 的值为 11. 在 JavaScript 中,这些字母被称为变量 变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume). 变量必须以字母开头 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)

JavaScript学习——JavaScript 对象 数据类型总结02

JavaScript 字符串(String) 对象 一个字符串用于存储一系列字符就像 "John Doe". 一个字符串可以使用单引号或双引号: var carname="BMW"; var carname='BMW'; 使用位置(索引)可以访问字符串中任何的字符: var character=carname[7]; 字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等. 可以在字符串中使用引号 var sname="王老五&

JavaScript学习——JavaScript比较和 逻辑运算

比较运算符 比较运算符在逻辑语句中使用,以测定变量或值是否相等. JavaScript"=="的作用 当==两边的内容是字符串时,则比较字符串的内容是否相等. 当==两边的内容是数字时,则比较数字的大小是否相等. 当==两边的内容是对象或者是对象的函数属性时,则比较内存地址是否相等. ==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase. x=5,下面的表格解释了比较运算符: 运算符 描述 比较 返回值 === 绝对等于

JavaScript学习——JavaScript 条件 语句 switch语句 while语句

JavaScript if...Else 语句 条件语句 在 JavaScript 中,我们可使用以下条件语句: if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码 if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码 if...else if....else 语句- 使用该语句来选择多个代码块之一来执行 switch 语句 - 使用该语句来选择多个代码块之一来执行 if 语句 只有当指定条件为 true 时,该语句才会执行代码.

JavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突

文件夹: 1.JavaScript发展史 2.JavaScript与JScript差别 3.JavaScript引入方式 4.JavaScript基本数据类型及布尔值 5.JavaScript命名规范 6.JavaScript命名推荐 7.JavaScript解决命名冲突 1. JavaScript发展史 1.Netscape发明了JavaScript(1992年后) 1)出现JavaScript的原因(Netscape Navigator) * 网络的不断普及与推广,有庞大的用户量 * 因为当

JavaScript学习12 JS中定义对象的几种方式【转】

avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工厂方式 3.构造函数方式 4.原型("prototype")方式 5.动态原型方式 一.基于已有对象扩充其属性和方法 <script type="text/javascript

JavaScript发展史,与JScript区别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突

今天真机调试的时候莫名其妙遇到了这样的一个问题: This product type must be built using a provisioning profile, however no provisioning profile matching both the identity "iPhone Developer" and the bundle identifier..... 具体如下图所示: 十分蛋疼, 发现不管是从网上下的demo, 还是自己的过程.凡事真机测试的时候都