2-JavaScript基本数据结构

提供脚本语言的编程与C++非常相似,它只是去掉了C语言中有关指针等容易产生的错误,并提供了功能强大的类库。对于已经具备C++或C语言的人来说,学习JavaScript脚本语言是一件非常轻松愉快的事。

一、JavaScript代码的加入

    JavaScript的脚本包括在HTML中,它成为HTML文档的一部分。与HTML标识相结合,构成了一个功能强大的Internet网上编程语言。可以直接将JavaScript脚本加入文档:
    <Script Language ="JavaScript">
    JavaScript语言代码;
    JavaScript 语言代码;
    ....
    </Script>

    说明:
    (1)通过标识<Script>...</Script>指明JavaScript脚本源代码将放入其间。
    (2)通过属性Language ="JavaScript"说明标识中是使用的何种语言,这里是JavaScript语言, 表示在JavaScript中使用的语言。

二、基本数据类型

    JavaScript脚本语言同其它语言一样,有它自身的基本数据类型、表达式和算术运算符以及程序的基本框架结构。JavaScript提供了四种基本的数据类型用来处理数字和文字, 而变量提供存放信息的地方, 表达式则可以完成较复杂的信息处理。

1.基本数据类型

    在JavaScript中四种基本的数据类型:数值(整数和实数)、字符串型(用“”号或‘’括起来的字符或数值)、布尔型(使True或False表示)和空值。在JavaScript的基本类型中的数据可以是常量,也可以变量。由于JavaScript采用弱类型的形式,因而一个数据的变量或常量不必首先作声明,而是在使用或赋值时确定其数据的类型的。当然也可以先声明该数据的类型,它是通过在赋值时自动说明其数据类型的。

2.常量

(1)整型常量
    JavaScript的常量通常又称字面常量,它是不能改变的数据。其整型常量可以使用十六进制、八进制和十进制表示其值。

(2)实型常量
    实型常量是由整数部分加小数部分表示,如12.32、193.98 。可以使用科学或标准方法表示:5E7、4e5等。

(3)布尔值
    布尔常量只有两种状态:True或False。 它主要用来说明或代表一种状态或标志,以说明操作流程。它与C++是不一样的,C++可以用1或0表示其状态,而JavaScript只能用True或False表示其状态。

(4)字符型常量
    使用单引号(‘)或双引号(“)括起来的一个或几个字符。如 "This is a book of JavaScript "、"3245"、"ewrt234234" 等。

(5)空值
    JavaScript中有一个空值null,表示什么也没有。如试图引用没有定义的变量,则返回一个Null值。

(6)特殊字符
    同C语言一样,JavaScript中同样以有些以反斜杠(/)开头的不可显示的特殊字符。通常称为控制字符。

3.变量

    变量的主要作用是存取数据、提供存放信息的容器。对于变量必须明确变量的命名、变量的类型、变量的声明及其变量的作用域。

(1)变量的命名
     JavaScript中的变量命名同其计算机语言非常相似,这里要注意以下两点:

    A.必须是一个有效的变量,即变量以字母开头,中间可以出现数字如test1、text2等。除下划线(-)作为连字符外,变量名称不能有空格、(+)、(-)、(,)或其它符号。

    B.不能使用JavaScript中的关键字作为变量。

    在JavaScript中定义了40多个类键字,这些关键是JavaScript内部使用的,不能作为变量的名称。如Var、int、double、true不能作为变量的名称。
在对变量命名时,最好把变量的意义与其代表的意思对应起来,以免出现错误。

(2)变量的类型
    在JavaScript中,变量可以用命令Var作声明:
    var mytest;
    该例子定义了一个mytest变量。但没有赋予它的值。
    Var mytest=”This is a book”
    该例子定义了一个mytest变量, 同时赋予了它的值。
    在JavaScript中,变量以可以不作声明,而在使用时再根据数据的类型来确其变量的类型。如:
    x=100
    y="125"
    xy= True
    cost=19.5等。
    其中x整数,y为字符串,xy为布尔型,cost为实型。

(3)变量的声明及其作用域
    JavaScript变量可以在使用前先作声明,并可赋值。通过使用var关键字对变量作声明。对变量作声明的最大好处就是能及时发现代码中的错误;因为JavaScript是采用动态编译的,而动态编译是不易发现代码中的错误,特别是变量命名的方面。
    对于变量还有一个重要性──那就是变量的作用域。在JavaScript中同样有全局变量和局部变量。全局变量是定义在所有函数体之外,其作用范围是整个函数;而局部变量是定义在函数体之内,只对其该函数是可见的,而对其它函数则是不可见的。

三、表达式和运算符

1.表达式

    在定义完变量后,就可以对它们进行赋值、改变、计算等一系列操作,这一过程通常又叫称一个叫表达式来完成,可以说它是变量、常量、布尔及运算符的集合,因此表达式可以分为算术表述式、字串表达式、赋值表达式以及布尔表达式等。

2.运算符

    运算符完成操作的一系列符号,在JavaScript中有算术运算符,如+、-、*、/等;有比较运算符如!=、==等; 有逻辑布尔运算符如!(取反)、|、||; 有字串运算如+ 、 +=等。
    在JavaScript主要有双目运算符和单目运算符。其双目运算符由下列组成:
    操作数1  运算符  操作数2
    即由两个操作数和一个运算符组成。如50+40、"This"+"that"等。单目运算符,只需一个操作数,其运算符可在前或后。

(1)算术运算符
    JavaScript中的算术运算符有单目运算符和双目运算符。
    双目运算符: +(加) 、-(减)、 *(乘)、 /(除)、 %(取模) 、|(按位或)、&(按位与)、<<(左移)、 >>(右移)、 >>>(右移,零填充)。
    单目运算符: -(取反)、~(取补)、++(递加1)、--(递减1)。

(2)比较运算符
    比较运算符它的基本操作过程是,首先对它的操作数进行比较,尔后再返回一个true或False值,有8个比较运算符:

(3)布尔逻辑运算符
    在JavaScript中增加了几个布尔逻辑运算符: !(取反)、&=(与之后赋值)、 &(逻辑与)、 |=(或之后赋值)、 |(逻辑或)、 ^=(异或之后赋值)、 ^(逻辑异或)、 ?:(三目操作符)、||(或)、==(等于)、|=(不等于)。
    其中三目操作符主要格式如下:
    操作数?结果1:结果2
    若操作数的结果为真,则表述式的结果为结果1,否则为结果2。

四、范例

下面是一个跑马灯效果的JavaScript文档。

    Test2_1.html
    <html>
    <head>
    <script Language="JavaScript">
    var msg="欢迎浏览山西之窗(www.shanxiwindow.net)网站";
    var interval = 100;
    var spacelen = 120;
    var space10=" ";
    var seq=0;
    function Scroll() {
    len = msg.length;
    window.status = msg.substring(0, seq+1);
    seq++;
    if ( seq >= len ) {
    seq = spacelen;
    window.setTimeout("Scroll2();", interval );
    }
    else
    window.setTimeout("Scroll();", interval );
    }
    function Scroll2() {
    var out="";
    for (i=1; i<=spacelen/space10.length; i++) out +=
    space10;
    out = out + msg;
    len=out.length;
    window.status=out.substring(seq, len);
    seq++;
    if ( seq >= len ) { seq = 0; };
    window.setTimeout("Scroll2();", interval );
    }
    Scroll();
    </script>
    <body>
    </body>
    </html>



    本讲介绍了JavaScript脚本是如何加入Web页面, 并学习了JavaScript语言中的基本数据类型、变量、常量、操作运算符等。从本讲中的内容中可以看出,对于已经掌握C++语言的人来说,学习JavaScript真是一件非常轻松愉快的事。


评论: 0 | 引用: 17 | 查看次数: 4035
发表评论
你没有权限发表评论!