用法
html中的脚本必须写在<script></script>标签当中。但脚本可以放在body或者head中,但通常将脚本放在head中,以不干扰页面内容。也就是说下面的两段js代码是可行的:
<head>
<title>test---html</title>
<meta charset="utf-8" />
<script type="text/javascript">
document.write("a");
</script>
</head>
<body>
<div id="left">
<div>
这是子div
</div>
</div>
<script type="text/javascript">
document.write("ab");
</script>
</body>
上述是直接将js代码写在html中,也可以通过<script>标签的src属性引入外部的js文件。如下: <script src="test.js"></script>
通过<script>标签的src属性引入外部js。
将js代码放到html界面的下面,这样可以在加载完html后才执行相应的js。
script标签
type:必需属性,js代码时值为text/javascript。
src:引入的外部js文件的目录。
注意
1,<script></script>不能简写成<script/>,即使开始标签与结束标签之间没有任何文字
2,设定src属性后,开始标签与结束标签之间不能写js代码。即使写了也不会执行。
3,一般来说,<script>放到head标签中。但也可以放到body标签中。
4,跟script标签对应的有一个noscript标签:用来定义脚本语言未被执行时的替代内容(文本)。如果浏览器支持脚本语言,那么它不会显示noscript元素中的文本。
运算符
==:在比较时会自动转换,比较的是数值。如var a = 1;var b = true,那么a==b。因为在js中true用1表示(false用0表示),所以a==b。
===:类似于==,在比较时也会自动转换。并且在比较时先比较值,然后继续比较变量的类型。如上面的a和b,虽然值相等,但两者的类型不相同,所以a===b是错误的。
():立即执行
instanceof:与java中一样。任何类都instanceof Object。
in:判断对象中是否有指定的属性,包含可枚举和不可枚举的,无论该属性属于原型还是对象都返回true。格式为:"属性名" in 对象。
变量
js的变量区分大小写。在方法内部使用var声明的变量为局部变量,其余的为全局变量(如:在方法外部用var声明的变量,或者在方法内部不使用var声明的变量——在使用该变量之前,变量所在的方法必须被调用过,否则变量就未定义)。如:
<script type="text/javascript">
function test(){
c = 5;
}
test();
alert(c);//如果test()放到该句之后,c变量就是未定义的
</script>
var:在声明变量的时候可以不指定成具体的类型,用var代替即可。var类型的变量可以被赋值成任意类型的值。var类型的变量可以前后赋值不同类型的值。如:
var a = 10;
a = "fadfa";
alert(a);
使用typeof函数查看类型时可以发现:a开始时是number类型的,后面为string类型。但不建议这样做。
常用函数
document.write("string"):文档输出。不但可以输出string,还可以输出含有标签的语句。这些输出的语句会被浏览器解析。如
document.write("<h1>这是h1标签</h1>");
浏览器会将“这是h1标签”按h1标签的样式进行显示,而不是单单只显示出纯文本。
alert(String):以对话框的形式展示出相应的内容。因为js代码写在<script>标签中的,因此如果想要在对话框中输出"</script>",必须将</script>拆分成两个字符串相加的形式,如:alert("</s"+"cript>");。如果直接写成一个,浏览器在解析的时候会将alert的参数当作script的结束标签。
上述将</script>拆分成两个字符串,只是在html界面内容引用js时才需要。如果是通过src属性直接引入外部js,是不需要的。
杂项
1,console.info("text");将参数输出到控制台,类似于System.out.printf();
2,html代码是从上往下解析,且边解析边执行。