JavaScript笔记整理4 -- JS基础概念之复合数据类型( 数组与对象)

本文详细介绍了JavaScript中的数组和对象。数组作为复合数据类型,包括一维和多维数组,提供了多种创建和操作数组的方法,如length属性、遍历方式等。对象则由属性和方法组成,包括自定义对象和内置对象如String、Array、Date和Math等,每个对象都有特定的属性和方法,如String对象的charAt()、indexOf(),Array对象的push()、pop()等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript笔记整理4 -- JS基础概念之复合数据类型( 数组与对象)

数组

:一组数据有序的集合,它属于符合数据类型,至少可以存储一个数。

概念

数组元素

:数组的每一个数据。

  • 访问数组中指定的元素,要通过下标来访问;
    格式:数组变量名[下标]

数组下标(索引)

:每一个元素都对应着一个数组下标,数组下标由0开始第一个数组元素的下标识0,第二个是1,第三个是2,以此类推。


数组其实也是对象,对象由属性和方法组成,下面介绍一个数组中常用的方法,获取数组的长度。

数组长度length

格式:数组变量名.length

  • 获取的值是整数类型。

定义数组

显式创建数组

:使用new关键字和Array()方法定义数组。

同样具备两种方法:

  1. 直接定义数组后赋值
    格式:var 数组变量名= new Array("数组元素1","数组元素2","数组元素3");
  2. 定义空数组再通过下标添加元素
    定义数组的两种方式(推荐第一种):
        1)创建空数组      格式:var 数组变量名=new Array();
        2)创建指定长度的数组      格式:var 数组变量名=new Arryay(数组长度);
    赋值:
			arr[0]="数组元素1";
			arr[1]="数组元素2";
			arr[2]="数组元素3";

隐式创建数组

:使用[]定义数组。

有两种方法如下:

  1. 直接定义并添加数组元素
    格式:var 数组变量名=["数组元素1","数组元素2","数组元素3"];
  2. 定义空数组再通过下标添加元素
    格式例子:
			var arr=[];
			arr[0]="数组元素1";
			arr[1]="数组元素2";
			arr[2]="数组元素3";
			//此处如果再添加 arr[99]="新元素";
			//数组的长度将为100。


注意:工作中一般都是用[]创建数组,基本不使用new关键字和Array数组方法来创建。

一维数组

:一个数组内所有的元素数据类型都不是数组类型,就是一维数组。

多维数组

:超过一维数组的都可以叫多维,多维数组指的是一个数组中的元素又是一个数组。

定义二维数组

格式例子:

			var arr=[
						"数组元素1",
						"数组元素2",
						["二维数组元素1","二维数组元素2","二维数组元素3"]
					];

访问多维数组的元素

格式:数组变量名[一维数组的下标][二维数组的下标]

二维数组的长度

length获取的是当前数组的一维长度,例如上面例子的长度为3。

数组的遍历

:操作数组中的每一个数组元素。

使用for…in语句遍历

  • for…in语句本身是用来遍历对象的

格式:

for(var 变量名 in 数组变量名){
	数组变量名[变量名];
}

使用for循环遍历

遍历:

		for(var i=0;i<数组变量名.length;i++){
			数组变量名[i];
		}
  • 这段代码可进行优化,如下:
		var 数组长度变量名=数组变量名.length;
		for(var i=0;i<数组长度变量名;i++){
			数组变量名[i];
		}

==注意==:一般情况下使用for循环来遍历数组,因为使用for循环遍历数组非常直观。 ## 遍历二维数组 理解:**行数**是这个**二维数组**的长度,**列数**是这个二维数组下的**一维数组**的长度决定。

遍历:

		var 行数变量名=二维数组变量名.length;
		for(var i=0;i<二维数组长度变量名;i++){
			var 列数变量名=二维数组变量名[i].length;
			for(var j=0;j<列数变量名;j++){
				二维数组变量名[i][j];
			}
		}

对象

概念

对象是由属性和方法组成的。
在JavaScript中一切皆是对象。

对象的分类

对象分为 :自定义对象 , 内置对象 和 浏览器对象。

创建自定义对象

下面介绍两种创建方法。

1.使用new关键字和Object()方法创建自定义对象

使用:先创建空对象,再添加属性和方法。
举例:

		var obj=new Object();
		obj.username="张三";
		obj.sex="男";
		obj.age="20";
		obj.showInfo=function(){
			var str="姓名:"+this.username+" 性别:"+this.sex+" 年龄:"+this.age;
			return str;
		}

理解:new Object创建空对象,并给其赋值变量obj,并给对象添加属性方法

  • this一般是在匿名函数中使用,它是代表当前对象,哪个对象来调用当前的匿名函数,这个this就会指向那个对象。

2.使用{}创建自定义对象

格式:

		var 变量名={};
		//用.设置属性;

或 JSON格式,如下

		var 变量名={
			属性名:值,
			属性名:值,
			方法名:匿名函数
		};
  • 创建方式和JSON创建对象极其相似。
  • 缺点:只能创建一次性对象(只能在源码上进行修改)。

访问属性

  1. .访问
  2. 对象名["属性名"] – 可用于变量访问对象。

内置对象

分类:

  • String对象:提供了处理字符串的属性和方法
  • Array对象:提供了一些操作数组的属性和方法
  • Math对象:提供了一些操作数学方面的方法
  • Date对象:提供了一些对时间日期操作的方法
  • Number对象:主要提供了操作数值的方法
  • Event对象:提供对JavaScript事件的处理信息

String对象

创建String对象

两种方法:

  1. 定义的字符串变量名其实就是一个字符串对象
    格式:var 变量名='字符串内容';
  2. 使用new关键字和String()方法来创建
    格式:var 变量名=new String("字符串内容");
String对象的常用属性
StringObject.length

功能:返回字符串对象的长度。(这里指字符的个数)

  • 凡是在描述字符串长度时,通常有两种说法:
    1.该字符串的字符个数
    2.该字符串在内存中所占的位置
String对象的常用方法
StringObject.charAt(index)
  • index:指定的下标值

功能:返回一个指定下标的字符。

  • 访问指定下标的对象有两种方法:
    1.StringObject.charAt(index)
    2.StringObject[index]
StringObject.indexOf(substr)

功能:查找substr这个字符串或者是字符在StringObject这个对象中首次出现的位置,如果能找到则返回对应下标,否则返回-1 。

  • 查找的是字符串时,如果能找到,返回的是字符串首字母的下标。
StringObject.LIndexOf(substr)

功能:查找substr这个字符串或者是字符在StringObjec这个对象中最后出现的位置,如果能找到则返回对应下标,否则返回-1 。

  • 查找的是字符串时,如果能找到,返回的是字符串首字母的下标。
StringObject.substr(startIndex[,Length])
  • startIndex:开始下标
  • Length:可缺省的,表示的是截取的长度

功能:截取字符串,从开始下标startIndex处开始截取Length长度的字符串,Length不可不写,表示取到原字符串末尾。

StringObject.split(sep)
  • sep:指定的分隔符个

功能:使用指定的分隔符将一个字符串分割为数组。

  • 最终得到的是一个数组;
StringObject.replace(reg,str)
  • reg:规定了要替换的模式的RegExp对象
  • str:被替换的内容

功能:使用str参数里面的内容替换reg的第一次匹配或所有匹配之后得到的内容。

Array对象

创建Array对象

两种方法:

  1. 使用[]创建
    格式:var 变量名=[数组元素1,数组元素2,数组元素3];
  2. 使用new关键字和Array()方法来创建
    格式:var 变量名=new Array(数组元素1,数组元素2,数组元素3);
Array对象的常用属性
ArrayObject.length

功能:返回数组的长度。(这里指数组元素的个数)

Array对象的常用方法
ArrayObject.push(数组元素1,数组元素2…)

功能:向数组的末尾添加一个或者多个数组元素,并返回添加后的数组长度。

ArrayObject.pop()

功能:将数组的最后一个元素删除,并返回删除的该元素。

ArrayObject.shift()

功能:将数组的第一个元素删除,并返回删除的该元素。

ArrayObject.unshift(数组元素1,数组元素2…)

功能:向数组的开头添加一个或者多个数组元素,并返回添加后的数组长度。

ArrayObject.concat(数组名)

功能:连接一个或更多的数组,并返回数组结果。

ArrayObject.reverse()

功能:将数组元素倒置,并返回数组结果。

ArrayObject.join([sep])

功能:将数组用sep字符合并为字符串,如果sep为空,默认为英文逗号,

ArrayObject.sort(fn)

功能:将数组进行排序(升序/降序),返回排序后数组。

fn函数内容 :

		function fn(a,b){
			//升序	
			return a-b;
		}
		function fn(a,b){
			//降序	
			return b-a;
		}

Date对象

创建Date对象

方法: 使用new关键字和Array()方法来创建
创建的类型:

  1. 带参数:获取指定的时间日期对象
    格式:var 变量名=new Date("//日 时::");
  2. 不带参数:系统当前的时间日期对象
    格式:var 变量名=new Date();
  • Date对象没有属性,只有方法。
Date对象的常用方法
DateObject.getFullYear()

功能:返回四位数的年份。

DateObject.getMonth()

功能:获取月份,返回0-11

  • 一月(0)-十二月(11)
DateObject.getDate()

功能:获取日期,返回1-31 。

DateObject.getHours()

功能:获取小时,返回0-23 。

DateObject.getMinutes()

功能:获取分钟,返回0-59 。

DateObject.getSeconds()

功能:获取秒,返回0-59 。

DateObject.getMilliseconds()

功能:获取毫秒,返回0-999 。

DateObject.getDay()

功能:获取星期,返回0-6 。

  • 0表示星期日,其他对应星期相同。
DateObject.getTime()

功能:代表时间戳,获取从1970年1月1日0时0分0秒到该日期的毫秒数。

DateObject.toLocalDateString()

功能:将时间日期对象转换为本地日期(年月日),返回字符串。

DateObject.toLocalTimeString()

功能:将时间日期对象转换为本地时间(时分秒),返回字符串。

Math对象

注意
Math对象不需要创建,直接使用即可。
Math关键字就是对象名。

Math对象的常用属性
Math.PI

功能:返回圆周率。

Math对象的常用方法
Math.abs(x)
  • x表示数字

功能:返回x的绝对值。

Math.pow(x,n)

功能:返回x的n次幂。

Math.sqrt(x)

功能:返回x的平方根。

Math.max(x,y,z,…)

功能:返回列表中的最大值。

Math.min(x,y,z,…)

功能:返回列表中的最小值。

Math.ceil(x)

功能:向上取整,返回比当前数要大的最小整数。

Math.floor(x)

功能:向上取整,返回比当前数要小的最大整数。

Math.round(x)

功能:不保留小数位的四舍五入,返回x四舍五入后的结果。

Math.random()

功能:返回 [0-1) 之间的一个随机数。

  • 包含0,不包含1

可以通过给这些数相乘的到相应随机数。

Number对象

Number对象的常用方法
Number.toFixed(n)

功能:将一个数字进行保留n位小数,需要进行四舍五入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值