1 在网页中使用 JavaScript
要在网页中使用JavaScript,您可以使用<script>标签,如果要将JavaScript直接写在网页原始码之中,则可以如下:
<html>
…
<script type='text/javascript‘ language=‘javascript’>
…
</script>
…
</html>
您可以只写type属性或只写language属性,在HTML4中,建议写type属性设定,事实上,language的设定也可以是 VBScript,如果没有写language设定,预设就是"javascript",language属性上还可以指定版本,例如:
<script language=‘javascript1.5’>
...
</script>
在language中指定了"javascript1.5",则当中的JavaScript必须要支只持JavaScript 1.5的浏览器才可以,其它浏览器则加以忽略。
不过一般来说,并不建议将JavaScript原始码写在HTML网页之中,而是将之储存为一个.js的档桉,然后在HTML网页中引用它,例如:
<html>
…
<script type='text/javascript‘ src=‘…/xx.js’> </script>
…
</html>
被引用的.js文件,不再需要写<script>标签,而是直接将代码写在其中,这么作的优点是可以简化HTML网页的内容,而.js 文件如果设计的好,也可以在网页之间共用,并可进一步利用浏览器快取的功能,减少下载文件的频率,而不是像直接在网页中写JavaScript,即使是相同的代码,每个网页都还是得下载一次。
2 变量
变量是计算机语言的基本元素之一,一般对JavaScript的变量理解是:可以直接写一个变量然后指定值给它,变量是没有类型的,可以指定任何的类型给它。然而JavaScript的变量其实比您想的还复杂许多。
在JavaScript中可以使用var来声明一个变量,例如:
var x; // undefined
x = 10;
使用var声明变量而还没指定资料给它时,如果您尝试显示它的值,就会出现"undefined"值。
在许多计算机语言中,变量只要声明一次就可以了,如果您重复定义,在许多(编译式)语言中还会出现编译的错误讯息,但在JavaScript中,是可以使用var重复定义同一个名称的变量,例如:
var x = 10; // 定义x变量,并指定10给它
…
var x; // 再定义一次x变数是OK的,而目前的值仍是10
…
var x = 20; // 再来一次声明,这次x被设为20
如果您在还没定义变量时,就尝试显示某个变量名称时,就会发生错误,例如:
alert(y); // y没有定义
在JavaScript中有局部变量(Local Variable)与全局变量(Global Variable)的观念,每个JavaScript在执行时,都会有个全局对象,在浏览器中,Window对象就是JavaScript执行时的全局对象。
来看看以下这个代码范例:
x = 10; // 直接定义并指定值,自动将该名称设定为全局变量,在整个JavaScript执行期间,所有区域都可视
function some(arg) {
var y = 10; // 局部变量,「区域」外不可视
}
var z = 20; // 在函数外使用var定义的变量,以全局对象为范围
如果不使用var,而是直接声明变量并指定值,则它是个全局变量,例如:
function some() {
x = 10; // x 是全局
}
some(); // 执行函数,所以当中的x会被定义
alert(x); // 在这边读取x是OK的
如果全局变量与局部变量同名,则局部变量会覆盖全局变量,例如:
x = 20;
function some() {
var x = 10; // 区域变数x覆盖全域变数x
alert(x); // 显示10
}
some();
alert(x); // 显示20
在JavaScript中没有区块(Block)变量的观念,只要是var定义的,在整个区域中就是可视的,例如:
function some() {
if(true) {
var x = 10; // 虽然在if区域中宣告x
}
alert(x); // 但这边还是可以显示x的值为10
}
不过要注意的是,由于JavaScript的是由上往下执行,所以您的变量要有用,必须在使用它之前声明,例如:
function some() {
alert(x); // x 未定义
var x = 10;
alert(x); // 显示10
}
当您在JavaScript中定义了一个变量,您可以使用delete将删除,例如:
x = 10; // 宣告x并指定值
delete x; // 删除x
alert(x); // x
3 变量类型
在JavaScript 当中,变量可以接受任何类型的数值,例如:
var x = 10; // 可以接受数值
x = "name"; // 可以接受字串
由于变量可以接受任何类型的值,在JavaScript中,常常偷偷发生类型转换,所以您一定要搞清楚,现在的类型是什麽。
在JavaScript中有三种基本数据类型:数值、字符串与布尔值。
数值不分整数或小数,都用IEEE 754标准64位元浮点数格式来表示,整数运算时,则使用32位元。可以使用Number.MAX_VALUE、Number.MIN_VALUE来取得数值的最大与最小表示范围,可以使用Number.POSITIVE_INFINITY或Infinity来表示正无限大的数值,使用Number.NEGATIVE_INFINITY或-Infinity来表示负无限大的数值,而非数值(Not A Numbr)可以使用Number.NaN、NaN来表示。
数值虽然是基本数据类型,但在必要的时候,会自动转换为对象,例如以下的代码打算操作toString()方法,数值会自动转换为Number的Wrapper对象,将数值转换为2进位制、8进位制或16进位制表示法。
var w = 10;
var x = w.toString(2); // 转为2进位制表示"1010"
var z = w.toString(010); // 转为8进位制表示"12"
var y = w.toString(0x10); // 转为16进位制表示"a“
var x = (10).toString(2); // 转为2进位制表示"1010“
在JavaScript中,字符串是基本数据类型,而要操作相关方法时,执行时期可以转换为String的Wrapper对象,例如:
var msg = "hello";
msg.length; // 传回字串长度5
msg.charAt(0) // 传回"h"(索引从0开始)
String除了以上列出的方法之外,还可以使用indexOf()、substring()等方法。
布尔值对应的Wrapper对象是Boolean。
在JavaScript中,可以使用+来串接字串,如果两个运算元中,有一个是字串,一个不是,则运算时后者会转换为字串,例如:
var x = 1 + "12"; // "112"
var y = "1" + "12"; // "112“
但是-、*、/在字串上运作的话,则会尝试将运算元转换为数值再行运算。
var x = "12" - "2"; // 10
var y = "12" * "2"; // 24
var z = "12" / "2"; // 6
布尔值在JavaScript中只有两个值:true跟false,必要时,JavaScript可以自动类型转换为1跟0,例如:
var x = true + 10; // 11
。。。。。。。。。。。。。
。
。
。
。
。
。
。 。 。
。 。 。
。