1.JS简介
- js是一种基于客户端浏览器的,基于对象和时间驱动式的脚本语言。
- js拥有跨平台特性,是动态解释行的。
- js不是java,java是面向对象语言,js则是一种可以嵌入web的解释性语言。
- js是基于对象的,其代码由浏览器解释执行。
2.js在HTML页面的运行方式
- 使用JavaScript:前缀构建执行JavaScript代码的URL。
- 使用<script.../>元素来包含JavaScript代码。
<body>
<a href="javascript:alert('hello world')">运行JavaScript</a>
<script type="text/javascript">
alert("hello world");
</script>
</body>
3.当然也可以从外部导入JavaScript文件
(1)在HTML页面导入JavaScript脚本文件的语法格式如下:
<script src="test.js" type="text/javascript"></script>
(2) 在HTML文件外创建.js文件(test.js),并在内部写入代码
alert("hello world");
3.<script.../>文件的常用属性
- type :指定脚本语言类型,不过因为通常都是text/javascript,对于JavaScript脚本可以忽略。
- src:指定外部脚本文件的URL。使用该属性后,只能引用外部脚本,不能在元素内写脚本。
- charset:指定外部脚本文件的字符集,只能和src属性一起使用。
4.HTML5增强的两个<script.../>属性
1. defer:用于指定脚本是否延迟执行。具体指浏览器需要等这个页面加载解析之后,在执行<script.../>元素中的脚本。html是从上往下执行的,如果不再代码加上defer,浏览器执行到<script.../>时会停止解析下面<body.../>中的代码。
//HTML页面代码
<head>
<script type="text/javascript" src="test.js" defer>
</head>
<body>
<div id="target"></div>
</body>
//外部文件test.js的代码
var tg=document.getElementById("target");
tg.innerHTML="HELLO WORLD";
tg.style.backgroundColor=blue;
2. async:指定脚本的异步执行,正常情况下当程序执行到<script.../>元素时,会等到其执行完再往下执行,如果<script.../>元素很耗时就会引起页面长时间处于空白之中。async的出现会使<script.../>元素启动新线程,从而不影响浏览器继续向下解析处理HTML页面内容。
//HTML页面内容
<head>
<script type="text/javascript" src="js/async.js" async></script>
</head>
<body>
<div>测试文字</div>
</body>
//外部js文件内容
var sum = 0;
for(var i=0;i<100000000;i++){
sum += i;
}
alert(sum);
5.noscript元素
<noscript../>元素是向不支持或禁用js的浏览器提供显示信息。谷歌浏览器可以禁用js,大家可以在禁用后查看一下显示效果。
<body>
<noscript>
<h1>必须使用支持JavaScript的浏览器</h1>
</noscript>
</body>