复合类型

  复合类型是由多个基本数据类型(也可以包括复合类型)组成的数据体。JavaScript中的复合类型大致上有如下3种。
  ➢ Object:对象。
  ➢ Array:数组。
  ➢ Function:函数。

对象

  对象是一系列命名变量、函数的集合。其中命名变量的类型既可以是基本数据类型,也可以是复合类型。对象中的命名变量称为属性,而对象中的函数称为方法。对象访问属性和函数的方法都是通过“.”实现的。
  正如前文提到的,JavaScript是基于对象的脚本语言,它提供了大量的内置对象供用户使用。除Object之外,JavaScript还提供了如下常用的内置类。
  ➢ Array:数组类
  ➢ Date:日期类。
  ➢ Error:错误类。
  ➢ Function:函数类。
  ➢ Math:数学类,该对象包含相当多的执行数学运算的方法。
  ➢ Number:数值类。
  ➢ Object:对象类。
  ➢ String:字符串类。

数组

  数组是一系列的变量。与其他强类型语言不同的是,JavaScript中数组元素的类型可以不相同。定义一个数组有如下3种语法:

  var a=[1,2,3,4];
  var b=[];
  var c=new Array();

  第一种在定义数组时已为数组完成了数组元素的初始化,第二种和第三种都只创建一个空数组。
  JavaScript中数组的元素并不要求相同,同一个数组中的元素类型可以互不相同。
  JavaScript为数组提供了一个length属性,该属性可得到数组的长度,JavaScript的数组长度可以随意变化,它总等于所有元素索引最大值+1。
  JavaScript的数组索引从0开始。
  访问数组元素时不会产生数组越界,访问并未赋值的数组元素时,该元素的值为undefined。

函数

  函数是JavaScript中另一个复合类型。函数可以包含一段可执行性代码,也可以接收调用者传入参数。正如所有的弱类型语言一样,JavaScript的函数声明中,参数列表不需要数据类型声明,函数的返回值也不需要数据类型声明。函数定义的语法格式如下:

function functionName(param1,param2,...)  
{
}

  调用函数的语法如下:

functionName(value1,value2,...);  

  如果传入的参数不是数值会怎样呢?为了让程序更加严谨,应该先判断参数的数据类型,判断变量的数据类型使用typeof运算符,该函数用于返回变量的数据类型。

例子
<script type="text/javascript">  
    // 定义一个函数,定义函数时无需声明返回值类型,也无需声明变量类型
    function judgeAge(age)
    {      
            if(typeof age ==="number")
            {
        // 如果参数值大于60
        if(age > 60)
        {
            alert("老人");
        }
        // 如果参数值大于40
        else if(age > 40)
        {
            alert("中年人");
        }
        // 如果参数值大于15
        else if(age > 15)
        {
            alert("青年人");
        }
        // 否则
        else
        {
            alert("儿童");
        }
           }
           else
           {
                alert("参数必须为数值");
           }
    }
    // 调用函数
    judgeAge(46);
</script>

注:本博客内容节选自李刚编著的疯狂HTML 5/CSS 3/JavaScript讲义 ,详细内容请参阅书籍。