复合类型
复合类型是由多个基本数据类型(也可以包括复合类型)组成的数据体。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讲义 ,详细内容请参阅书籍。