JavaScript 与 Java 的区别:
●Java 和 JavaScript 完全是两个不同的产品, Java 是 Sun 公司推出的面向对象的程序设计语言;而 JavaScript 是 Netscape 公司的产品,其目的是为了扩展 Netscape 浏览器功能。 JavaScript 是一种可以嵌入 Web 页面中的解释性语言。
●Java 是面向对象的程序设计语言,即使是开发简单的程序,也必须从类定义开始;JavaScript 是基于对象的,本身提供了非常丰富的内部对象供设计人员使用。 Java 语言的最小程序单位是类定义 ;而 JavaScript 中充斥着大量函数。
●两种语言的执行方式完全不一样。 Java 语言必须先经过编译,生成字节码,然后由 Java虚拟机运行这些字节码; 而 JavaScript 是一种脚本语言,其源代码无须经过编译,由浏览器解释执行。
●两种语言的变量声明也不一样。 Java 是强类型变量语言,所有的变量必须先经过声明,才可以使用,所有的变量都有其固定的数据类型;而 JavaScript 是弱类型变量语言,
●代码格式不一样。 Java 采用一种与 HTML 无关的格式,必须像 HTML 中引用外媒体那样进行装载,其代码以字节代码的形式保存在独立的文档中;而JavaScript 的代码采用 一种文本字符格式,可以直接嵌入 HTML 文档中,并且可动态装载,编写 HTML文档就像编辑文本文件一样方便。
在实际的使用中,还有另一种脚本语言: JScript 语言。 JScript 与 JavaScript 的渊源比较深。事实上,两种语言的核心功能、作用基本一致, 都是为了扩展浏览器的功能而开发的脚本语言 ,只是 JavaScript 是由 Netscape 公司开发的,而 JScript 语言是由 Microsoft 公司开发的 。
早期的 JScript 和 JavaScript 差异相当大, Web 程序员不得不痛苦地为两种浏览器分别编写脚本。于是诞生了 ECMAScript, 这是一个国际标准化的JavaScript 版本。现在的主流浏览器都支持这个版本。 现在平时所说的 JavaScript. 严格意义上讲, 其实应该是 ECMAScript 。
运行JavaScript
前面已经介绍了 JavaScript 通常嵌在互联网页中执行,在HTML 页面中嵌入执行 JavaScript代码有两种方式。
●使用Javascript前缀构建执行 JavaScript 代码的 URL。
●使用<script… />元素来包含 JavaScript 代码。
对于第一种方式而言,所有可以设置 URL 的地方都可使用这种以 javascript. 作为前缀的URL, 当用户触发该 URL 时, javascript:之后的 JavaScript 代码就会获得执行。
如果页面里需要包含大量的 JavaScript 代码,则建议将这些 JavaScript 脚本放在标签之间 。 <script…/>元素既可作为<head…/>子元素,也可作为<body…/>子元素 。
例如如下页面代码片段。
<body>
<a href="javascript : alert('运行 JavaScrip!') ;" >运行 JavaScript</a>
<script type="text/javascript">
alert("直接运行的 JavaScript!");
</script>
</body>
第一种方式会生成一个超链接, 当用户单击该超链接时, alert(' 运行 Java Script! ') ;就会获得执行。
导入 JavaScript 文件
<script src="test.js" type=" text/javascript " ></script>
使用<script…/>元素时可指定如下属性。
- type : 该属性指定该元素内包含的脚本语言 的类型,通常都是 text/javascript 。对于JavaScript 脚本该属性可以省略。
- src : 指定外部脚本文件的 URL。 指定该属性之后,该<script./>元素只能引 入外部脚本,不能在该元素内部写脚本。
- charset : 指定外部脚本文件所用的字符集。该属性只能与 src 属性一起使用。
- defer: HTML 5 增强的属性,用千指定脚本是否延迟执行。
- async : HTML 5 增强的属性, 用于指定脚本是否异步执行。
<script… ./> 元素的前 3 个属性没什么需要特别介绍的, 重点是 HTML 5 为该元素新增的defer 和 async 两个属性,这两个属性都用千提升 JavaScript 的性能。
使用 script 元素的 defer 推迟脚本执行
defer 属性会告诉浏览器必须等整个页面载入之后、解析完毕才执行该<script…/>元素中的脚本。
<script cype="text/javascript" src="defer.js" defer>
</script>
**注:**defer 属性只 能作用 于外部脚本文件,它对于<script …/>元素内嵌的脚本不起作用。
使用 script 元素的 async 异步执行脚本
指定 async 属性的<script…/>元素会启动新线程、异步执行<script… ./> 元素导入的脚本文件,浏览器也会继续向下解析、处理页面内容。
<script type=" text/javascript " src="async.js" async>
</script>
**注:**async 属性只能作用于外部脚本文件,它对于<script… />元素内嵌的脚本不起作用。
noscript 元素
<noscript…/>元素用来向不支待 JavaScript 或禁用了 JavaScript 的浏览器显示提示信息。该元素的用法非常简单,直接在该元素内放提示信息即可,无须指定任何属性。
<body>
<noscript>
<hl>必须支持 JavaScript</hl>
<p>必须使用支待 JavaScript 的浏览器,并打开浏览器的 JavaScript 功能</p>
</noscript>
<div id="target"></div>
</body>