复合类型

复合类型是由多个基本数据类型(也可以包括复合组成的数据体 JavaScript 中的复合类型大致上有如下3种:

  • Object:对象
  • Array: 数组
  • Function: 函数
对象

对象是一系列命名变量、函数的集合。其中命名变量的类型既可以是基本数据类型,也可以是复合类型对象中的命名变量称为属性,而对象中的函数称为方法。 对象访问属性和函数的方法都是通过“.”实现的,例如如下代码用千判断浏览器的版本:

//获得浏览器版本
alert("浏览器的版本为:" + navigator.appVersion);

除Object 之外,JavaScript 还提供了如下常用的内置类
·Array: 数组类
·Date:日期类。
·Error: 错误类。
·Function:函数类
·Math: 数学类,该对象包含相当多的执行数学运算的方法
·Number: 数值类
·Object: 象类
·String: 字符串类

数组

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

var a = [3,5,23];
var b = [];
var c = new Array();

第一种在定义数组时已为数组完成了数组元素的初始化 ,第二种和第三种都只创建一个空数组。
JavaScript 作为动态、弱类型语言,归纳起来,其数组有如下3个特征。
·JavaScript 的数组长度可变。数组长度总等千所有元素索引最大值+
·同一个数组中的元素类型可以互不相同。
·访问数组元素时不会产 生数组越界,访问并未赋值的数组元素时,该元素的值为undefined。
JavaScript 数组本身就是一种功能非常强大的“容器”,它不仅可以代表数组,而且可以作为长度可变的线性表使用,还可以作为栈使用,也可以作为队列使用。
push(ele): 元素入栈,返回入栈后数组的长度 //在最后添加
pop() :元素出栈,返回出栈的数组元素 //在最后删除
unshift(ele) :元素入队列,返回入队列后数组的长度 //在最开始添加
shift():元素出队列,返回出队列的数组元素 //在最开始删除
此外, Array 对象还定义了如下方法。
concat(value… ):为数组添加一个或多个元素 。该方法返回追加元素后得到的数组,但原数组并不改变
join([separator]): 将数组的多个元素拼接在一起,组成字符串后返回。
reverse(): 反转数组包含的元素
slice(start , [end] ): 截取数组在 start 索引和 end 索引之间的子数组。如果省略 end 参数,则数组一直截取到数组结束;如果 start end 参数为正数,则从左边开始计数;如果 start、end 参数为负数,则从右边开始计数 。该方法返回截取得到的子数组 ,但原数组并不改变。
sort([ sortfunction]): 对数组元素排序。
splice(start , deleteCount, value,…): 截取数组从 start 索引开始、deleteCount 个元素,再将多个 value 值追加到数组中 。该方法返回数组被截取部分组成的新数组。
下面代码简单示范了上面方法的应用:

<script type="text/javascript">
    var a = ["html",2,"yeeku"];
    console.log(a.concat(4,5));//输出["html ", 2 , " yeeku ", 4 , 5]
    console.log(a.concat([4,5]));//输出["html ", 2 , " yeeku ", 4 , 5]
    console.log(a.concat([4,5],[6,7]));//输出["html ", 2 , " yeeku ", 4 , 5,6,7]

    var b = ["html",20,"is",99,"good"];
    console.log(b.join());//输出 html,20,is,99,good
    console.log(b.join("+"));//输出 html+20+is+99+good
    
    var c = ["html","css","jquery","bootstrp"];
    c.reverse();
    console.log(c);//输出["bootstrap ", " jquery", "css", "html"]

    var d = ["yeequ","leegang","crazyit","fkit","charlie"];
    console.log(d.slice(3));//输出 ["fkit","charlie"]
    console.log(d.slice(2,4));//输出 ["crazyit","fkit"]
    console.log(d.slice(1,-2));//输出 ["leegang","crazyit"]
    console.log(d.slice(-3,-2));//输出 ["crazyit"]

    var e = ["yeequ","leegang","crazyit","fkit","charlie"];
    //输出["fkit","charlie"], e变成["yeeku", " leegang", "crazyit"] 	console.log(e.splice(3));
     //输出["leegang"], e变成["yeeku","crazyit"] 	
    console.log(e.splice(1,1));
     //输出["yeeku"], e变成[20,30,40,"crazyit"] 	
    console.log(e.splice(0,1,20,30,40));
    console.log(e.splice(e));
</script>
函数

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

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

例如一个简单的函数:

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

通过 judgeAge(46)调用函数。代码的执行结果是中年人
调用函数的语法如下

funcionName(valuel,value2...);

从语法定义的角度来看, JavaScript 函数与 Java 方法有些相似 但实际上它们的差别很大,归纳起来 主要存在如下4点区别:
·JavaScript 函数无须声明返回值类型
·JavaScript 函数无须声明形参类型
·JavaScript 函数可以独立存在,无须属千任何类
·JavaScript 函数必须使用 function 关键字定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值