欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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>

运行代码,
JavaScript中的复合类型
此外,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中另一个复合类型,函数可以包含一段可执行代码,也可以接受调用者传入参数,正如所有弱类型语言一样,JavaScript的函数声明中,参数列表不需要数据类型声明,函数的返回值也不需要数据类型声明,函数定义的语法格式如下

//直接定义一个函数
function a(param1,param2,...){
	...
}
//定义函数的同时定义了一个m变量来接收函数的返回值
var m = function b(param1,param2,...){
	...
}

简单来说从定义上看JavaScript和Java有些相似,但是JavaScript定义函数也有明显的特点

  • JavaScript函数无须声明返回值类型
  • JavaScript函数无须声明形参类型
  • JavaScript函数可以独立存在,无须属于任何类
  • JavaScript函数必须使用function关键字定义