六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 61|回复: 0

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

[复制链接]

升级  1%

55

主题

55

主题

55

主题

举人

Rank: 3Rank: 3

积分
203
 楼主| 发表于 2013-2-7 15:27:57 | 显示全部楼层 |阅读模式
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
                               。。。。。。。。。。。。。
                                                          。
                                                           。
                                                          。
                                                          。
                                                          。
                                                          。
                                         。            。         。                                                 
                                                  。    。   。
                                                          。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表