javascript允许使用三种基本数据类型——数字、文本字符串和布尔值,此外它还支持两种小数据类型null和undefined,它们各自只定义了一个值。除此之外,javascript还支持复合数据类型——对象,它表示的是值的集合。javascript中的对象有两种,一种对象表示的是已命名的值的无序集合,另一种表示的是有编号的值的有序集合,后者被称为数组。虽然在javascript中对象和数组是同一种数据类型,但是它们的行为极为不同。在这本书中,将它们看做两种不同的类型。

与此同时,javascript还定义了一种特殊的对象——函数。它是具有可执行代码的对象。

  javascript和其他程序设计语言不同的地方在于它不区别整型数值和浮点型数值,在javascript中所有的数字都是由浮点型表示的。有些javascript实现支持八进制,但有些不支持,所以不建议使用八进制数字。

      javascript中有一种有趣的方法可以用于数字,方法tostring()可以用它的参数指定的基数或底数(底数必须在2和36之间)把数字转换成字符串。例如,要将一个数字转换为二进制数字,可以这么做:

      var x=33;

      var y=x.tostring(2); //这样y的值为100001

  要调用一个数值直接量的tostring()方法,就必须使用括号,这样才能避免将"."解释为小数点:

      var y=(257).tostring(0x10); //y是101

  如果在javascript中出现了一个浮点值大于所能表示的最大值时,其结果是一个特殊的无穷大值,javascript将它输出为Infinity,同理,如果是负无穷大值,输出为-Infinity。如果在一个算术运算中产生了未定义的结果或错误返回时,如除数为0,此时,结果是一个非数字的特殊值,输出NaN.

     程序中的字符串直接量是包含在单引号或双引号中的。与其他程序设计语言不同,javascript没有char数据类型,要表示单个字符,必须使用长度为1的字符串。

  字符串直接量必须卸载一行中,如果放在两行,可能会将它们截断,如果一定要添加一个换行符,可以使用\n。但是,不能在换行符前用反斜线转义符使字符串标记跨两行或在字符串中包含一个换行直接量。

  函数是一个可执行的javascript代码段,由javascript程序定义或由javascript实现预定义。虽然函数只被定义一次,但可以多次执行或调用它。javascript中的函数是一个真正的数据类型,因此它也可以像其他类型的值医用被赋给对象的属性。当一个函数被赋给某个对象的属性时,它常常被当做那个对象的方法来引用。

  除了用函数定义来定义函数square():

    function square(x)

    {  

      return x*x;

    }

  还可以用函数直接量来定义它:

    var square(x)=function(x){ return x*x; }

  这其实也就相当于是C#语言中的lambda表达式了。

  此外,还有一种定义函数的方法,即把参数列表和函数体作为字符串传递给构造函数Founction(),例如:

    var square=new Founction("x","return x*x;");

  这种方法定义的函数通常没有用。

  对象是已命名的数据的集合,它们通常被作为对象的属性来引用。要引用一个对象的属性,就必须引用这个对象。在其后面加句点或者属性名。javascript钟的对象可以作为关联数组使用,因为它们能将任意的数据值和任意的字符串关联起来。如果采用这种方式使用对象,那么要访问对象的属性就要采取不同的语法,即使用一个由方括号封闭起来的,包含所需属性名的字符串:image["width"]。

  对象直接量也称为对象初始化程序,它是由一个列表构成的,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开,整个列表包含在花括号之中。比如:

      var point={ x:2.3 , y:-1.2 };

  对象也可以直接嵌套,比如:

      var rectangle={ upperLeft{ x:2 , y:2 }

               lowerRight{ x:4 , y:4 }

              };

  对象直接量中的属性值不必是常量,可以是任意的javascript表达式:

      var square={ upperLeft{ x:point.x , y:point.y }

               lowerRight{ x:(point.x+side) , y:(point.y+side) }

              };

  数组可以存放任何一种javascript数据类型,包括对其他数组、对象或函数的引用。例如:document.images[1].width。常规数组以非负整数作为下标,而关联数组则用字符串作为下标,javascript并不支持多维数组,不过它的数组元素还可以是数组。javascript是一种无类型语言,因此数组元素不必具有相同的类型。javascript中创建数组: var a=new Array();

  数组直接量是一个封闭在方括号中的序列,序列中的元素由逗号分隔。与对象直接量一样,数组直接量也可以被嵌套,且元素不必仅限于常量,可以是任意的表达式。

  虽然在javascript中undefined和null值不同,但==运算符却将两者看作相等。如果必须区分undefined和null,可以使用===运算符或typeof运算符。

  在javascript中,定义Date对象:var now = new Date();//创建存放当前日期和时间的对象。

   javascript可以很灵活的将一种类型的值转换为另一种类型。

posted on 2011-05-05 18:01  Jeallyn  阅读(311)  评论(0编辑  收藏  举报