JavaScript中的复合类型
程序员文章站
2022-07-16 19:24:55
...
复合类型由多个基本数据类型(也可以包括复合类型)组成的数据体,JavaScript中的复合类型大致有如下3种,
- Object:对象
- Array:数组
- Function:函数
Object对象
对象是一系列明明变量、函数的集合。其中命名类型的变量既可以是基本数据类型,也可以是复合类型,对象中的命名变量称为属性,而对象中的函数称为方法,对象访问属性和函数的方法都是通过“.”实现的。
除了Object之外,JavaScript还提供了如下常用的内置类
- Array:数组类
- Date:日期类
- Error:错误类
- Function:函数类
- Math:数学类,该对象包含了相当多的执行数学运算的方法
- Number:数值类
- Object:对象类
- String:字符类
数组
数组是一系列的变量,与其它强类型语言不同的是,JavaScript中数组元素的类型可以不相同,定义数组有三种语法
var a = [3,5,23];//定义是就已初始化
var b = [];//声明一个空数组
var c = new Array();//声明一个空数组
JavaScript中的数组几个特征:
- 长度可变,数组长度等于其元素最大索引值+1
- 同一个数组中的元素类型可以互不相同
- 访问数组元素是不会产生数组越界,访问并未复制的数组元素时,该元素的值为undefined
除此之外,JavaScript数组可以作为长度可变的线性表使用,还可以作为栈来使用,以及队列来使用
JavaScript数组作为栈使用的两个方法如下
- push(ele):元素入栈,返回入栈后数组的长度
- pop():元素出战,返回出栈时的数组元素
JavaScript数组作为队列使用的两个方法如下
- unshift(ele):元素入队列,返回出队列的数组元素
- shift():元素出队列,返回出队列的数组元素
下面举一个例子
<script type="text/javascript">
var stack = [];
<!--入栈-->
stack.push("a");
stack.push("b");
stack.push("c");
<!--出栈-->
console.log(stack.pop());
console.log(stack.pop());
var queue = [] ;
<!--入队列-->
queue.unshift("1");
queue.unshift("2");
queue.unshift("3");
<!--出队列-->
console.log(queue.shift());
console.log(queue.shift());
</script>
运行代码,
此外,Array对象还定义了如下方法,
- concat(value,…):维数组添加一个或多个元素,该方法返回追加元素后打到的数组,狄安娜原数组并不改变
- join([separator]):将数组的多个有U拼接在一起,组成字符串后返回
- reverse():返回数组包含的元素
- slice(start[,end]):截取数组在start索引和end索引之间的子数组,如果省略end参数,则数组以直接渠道数组结束;如果tart、end参数为整数,测从左边开始基础;如果tart、end为负数,则从右边开始计数(倒数)。该方法返回截取得到的子数组,单元数组并不改变
- sort([sortfunction])对数组元素排序
- splice(start,deleteCount,value,…):截取数组从start索引开始,deleteCount个元素,再将多个value值追加到数组中,该方法返回数组被截取部分组成的新数组
下面举个例子
<script type="text/javascript">
var a = ["html",2,"yeeku",4 ,5];
console.log(a.concat(4,5));
console.log(a.concat([4,5]));
console.log(a.concat([4,5],[6,7]));
var b = ["html",28,"is",99,"good"]
console.log(b.join());
console.log(b.join("+"));
var c = ["html","css","jquery","bootstrap"];
c.reverse();
console.log(c);
var d = ["yeeku","leegang","crazyit","fkit","charlie"];
console.log(d.slice(3));
console.log(d.slice(2,4));
console.log(d.slice(1,-2));
console.log(d.slice(-3,-2));
var e = ["yeeku","leegang","crazyit","fkit","charlie"];
console.log(e.splice(3));
console.log(e.splice(1,1));
console.log(e.splice(0,1,20,30,40));
console.log(e);
</script>
运行代码后,可以在F12的console界面看到结果
函数
函数是JavaScript中另一个复合类型,函数可以包含一段可执行代码,也可以接受调用者传入参数,正如所有弱类型语言一样,JavaScript的函数声明中,参数列表不需要数据类型声明,函数的返回值也不需要数据类型声明,函数定义的语法格式如下
//直接定义一个函数
function a(param1,param2,...){
...
}
//定义函数的同时定义了一个m变量来接收函数的返回值
var m = function b(param1,param2,...){
...
}
简单来说从定义上看JavaScript和Java有些相似,但是JavaScript定义函数也有明显的特点
- JavaScript函数无须声明返回值类型
- JavaScript函数无须声明形参类型
- JavaScript函数可以独立存在,无须属于任何类
- JavaScript函数必须使用function关键字定义