`
leiwuluan
  • 浏览: 694584 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

一些写 Ajax 所必要知道的 JavaScript 及 DOM 观念

    博客分类:
  • ajax
阅读更多

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); // 在这边读取xOK

 

如果全局变量与局部变量同名,则局部变量会覆盖全局变量,例如:

 

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_VALUENumber.MIN_VALUE来取得数值的最大与最小表示范围,可以使用Number.POSITIVE_INFINITYInfinity来表示正无限大的数值,使用Number.NEGATIVE_INFINITY-Infinity来表示负无限大的数值,而非数值(Not A Numbr)可以使用Number.NaNNaN来表示。

 

数值虽然是基本数据类型,但在必要的时候,会自动转换为对象,例如以下的代码打算操作toString()方法,数值会自动转换为NumberWrapper对象,将数值转换为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中,字符串是基本数据类型,而要操作相关方法时,执行时期可以转换为StringWrapper对象,例如:

 

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中只有两个值:truefalse,必要时,JavaScript可以自动类型转换为10,例如:

 

var x = true + 10; // 11

                               。。。。。。。。。。。。。

                                                          。

                                                           。

                                                          。

                                                          。

                                                          。

                                                          。

                                         。            。         。                                                 

                                                  。    。   。

                                                          。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics