js有三种复合数据类型

复合类型是由多个基本数据类型(也可以包括复合类型)组成的数据体。js的复合类型大致有以下三种:

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

对象复合数据类型

对象是一系列命名变量、函数的集合。其命名变量的类型既可以是基本数据类型,也可以是复合类型。对象中的命名变量称为属性,而对象中的函数称为方法。对象访问属性和函数的方法是通过“.”实现的。

看如下代码:

结果如图:

js是基于对象的脚本语言,他提供了大量的内置对象供用户使用。除Object之外,js还提供了如下常用的内置类:

Array:数组类Date:日期类。Error:错误类。Function:函数类。Math:数学类,该对象包含相当多的执行数学运算的方法。Number:数值类。Object:对象类。String:字符串类。

通过new这些类就能得到一个对象。

数组复合数据类型:

定义数组:

var arr=new Array("7","huhuh","中国",ture,5);

var brr=["7","huhuh","中国",ture,5];

js的数组可变。同一个数组元素类型可以不同。访问数组范围外元素不会产生越界,访问未赋值元素会返回undefined。

js还提供了许多数组相关的方法:

push(ele):元素入栈,添加元素pop():元素出栈 ,删除元素并输出unshift(ele):元素入队列,添加元素shift():元素出队,删除元素并输出

出入栈是先进后出,出入队列是先进先出。

concat(value,...):为数组添加一个或多个元素。该方法返追加元素后得到的数组,但原数组不改变。join([separator]):将数组的多个元素拼接在一起,组成字符串后返回。reverse():反转数组包含的元素。slice(start,[end]):截取数组在start索引和end索引之间的子数组。如果省略end参数,则数组一直截取到数组结束:如果start、end参数为正数,则从左边开始计数:如果start、end为负数,则从右边开始计数。该方法返回截取到的子数组但原数组不发生改变。splice([start,deleteCout,value,...]):截取数组从start索引开始、deleteCount个元素,再将多个value值追加到数组中。该方法返回被截取部分组成的新数组。sort([sortfunction]):对数组进行排序。

//字符数组默认逐位排序

var arr = ["asdf", "gfgdf","add","csdf","bbdd"]

console.log("处理前", arr)

arr.sort()

console.log("排序后", arr)

//数字数组默认逐位排序

var arr = [111, 21, 444, 14, 56, 67]

console.log("处理前", arr)

arr.sort()

console.log("排序后", arr)

//数字数组按照大小排序

var arr = [111, 21, 444, 14, 56, 67]

console.log("处理前", arr)

arr.sort(function(a, b) {

return b - a //简单来说就是a-b是升序,b-a是降序

})

console.log("排序后", arr)

结果如图:

也就是说默认是逐位排序,加一个函数可以改变排序方式

arr.sort(function(a, b) { return b - a //简单来说就是a-b是升序,b-a是降序 })

函数复合数据类型:

函数可以包含一段可执行性代码,也可以接受调用者传入参数。js中不需要数据类型声明,函数的返回值也不需要数据类型声明。函数定义的语法格式有三种:

//匿名函数

var name=function(参数,参数,....){函数体}

//命名函数

function name(参数,参数,....){函数体}