JavaScript回顾六:数组和对象

我们学习数组就得知道什么是数组。

一、数组初识/特点

  1. .数组:一组数据的集合,数组的每一个数据叫做一个元素;Array[4]:数组和长度;
  2. 数组元素可以是任意类型,同一个数组中的不同元素可能是对象或数组;
  3. 每个数组都具有一个length属性,length属性就是数组元素的个数(数组的长度);
  4. 数组中每个元素在数组中有一个位置,以数字表示,称为索引(下标);
  5. 索引从0开始排列,[0]表示第一个数据,以此类推;
  6. 数组最大的索引,始终比数组长度小1;
  7. 数组的数据类型是一个对象,其实就是加了个数字索引和length属性的特殊对象。
<script>
	var arr=["小张""小王","小李","小明"];
	alert(typeof arr);
	alert(arr.length);
	alert(arr[3]);
	console.log(arr);
</script>

二、数组的创建

1.隐式方式创建的数组,最常用的方式;

<script>
	var arr=["小张","小王","小李","小明"]var arr=[1,2,3,4];
	var arr=["小张",2,true,["小明","小李"],{}];  //数组中的数组和对象
	var arr=[];    //空数组
	console.log(arr);
</script>

2.直接实例化,通过构造函数Array()创建。(1)直接把数组元素写到括号里;(2)创建数组并给数组元素赋值;(3)规定了数组的初始长度,并给数组元素赋值(数组长度动态调整)。

<script>
//例子
//1.直接写
	var arr=new Array("小张","小王","小明");
//2.给赋值
	var arr=new Array();
	arr[0]="小张";
	arr[1]="小王";
	arr[2]="小李";
	arr[3]="小明";
//3.数组长度
	var arr=new Array[3];
	arr[0]="小张";
	arr[1]="小李";
	arr[2]="小王";
	arr[3]="小明";
	arr[4]="校花";
	console.log(arr);
</script>

三、数组修改和增加

1.数组中数据的修改,直接使用下标对数组元素重新赋值;
2.数组中数据的增加:下标一样,不受影响,主义本质;

<script>
	var arr=["小张","小王","小明","小李"];
	//1.修改
	arr[2]="小花";
	//2.增加
	arr[4]="小孙";
	arr[5]="小红";
	arr[6]="小赵";
	arr[arr.length]="小花";
	arr[arr.length]="小王";
</script>

四、普通for循环遍历数组

要求:在数组的每个数据后加上“写作业去”,并输出;

<script>
	var arr=["小张","小王","小李","小明"];
	//1.for循环(普通)
	for(var i=0;i<4;i++){
		document.write(arr[i]+"写作业去"+"<br>");
	};
	//2.for循环(length数组长度)
	for(var i=0;i<arr.length;i++){
		document.write(arr[i]+"写作业去"+"<br>");
	};
	//3.for循环(优化版)
	var len=arr.length;
	for(var i=0;i<len;i++){     //避免重复获取数组长度,提高效率
		document.write(arr[i]+"写作业去"+"<br>");
	};
</script>

五、其他方式遍历数组

<script>
	var arr=["小张","小王","小李","小明"];
	//4.for-in遍历(使用下标,使用的人很多,在所有遍历方式中效率最低)
	for(i in arr){
		document.write(arr[i]+"写作业去"+"<br>");
	};
	//5.for-of遍历(ES6,使用数据,for-of遍历比for-in遍历效率高,但比普通for循环效率低)
	for(value of arr){
		document.write(value+"写作业去"+"<br>");
	};
</script>

六、获取数组中最大、最小值

直接看代码

<script>
//例子
	var zxw=[21,35,13,86,72,64];
	var xhw=zxw[0];
	for(var i=0;i<zxw.length;i++){
		if(xhw<zxw[i]){
			xhw=zxw[i];
		};
	};
	alert(xhw);
//使用函数封装
var zxw=[21,35,13,86,72,64];
function bdx(arr){
	var xhw=arr[0];
	for(var i=0;i<arr.length;i++){
		if(xhw>arr[i]){
			xhw=arr[i];
		};
	};
	return xhw;
};
alert(bdx(zxw));
</script>

七、数组排序(从小到大,冒泡排序)
直接看代码

<script>
//从小到大排序
	var zxw=[21,35,93,86,72,64,21,35];
	function paixu(arr){
		for(var i=0;i<arr.length-1;i++){
			if(arr[i]>arr[i+1]){
				var a=arr[i];
				arr[i]=aarr[i+1];
				arr[i+1]=a;
			};
		};
		return arr;	
	};
	alert(paixu(zxw));	
</script>

八、二维数组
二维数组:数组里的数据还是数组;
直接看代码理解

<script>
	var zxw[["小赵","小钱","小孙","小李"],["小周","小王","小吴","小郑"],["小冯","小陈","小卫","小杨"],["小蒋","小沈","小韩","小杨"]];
	alert(zxw.length);  //4:zxw数组长度;
	alert(zxw[0][2]);//第一个下标0:数组元素索引;第二个下标2:数组的元素中的元素索引;
	alert(zxw[2].length);
	console.log(zxw);
</script>

九、二维数组的遍历

<script>
	var zxw=[[],[],[],[]];
	for(var i=0;i<zxw.length;i++){
		for(var b=0;b<zxw[i].length;b++){
			document.write(zxw[i][b]+"写作业去"+"<br>");
		};
	};
</script>

十、获取二维数组中最大、最小值

<script>
	var zxw=[[],[],[]];
	var xhw=zxw[0][0];
                                    //function adx(arr){  函数封装
	for(var i=0;i<zxw.length;i++){  //换  i<zxw.length=>i<arr.length
		for(var b=0;b<zxw[i].length;b++){
			if(xhw<zxw[i][b]){      //换  b<zxw.length=>i<arr.length
				xhw=zxw[i][b];      //换  xhw=arr[i][b];
			};
		};
								    //return xhw;
	};								//};
								    //bdx(zxw);
	alert(xhw);
</script>

接下来,我们学习对象,先从定义开始
一、对象初识
在js中,对象是王。如果理解了对象,就理解了JavaScript;在js中,几乎“所有事物”都是对象。自符串、布尔值、数字(如果用new关键字定义)、对象、函数、日期、数组、正则表达式、页面中的元素都是对象。

<script>
	//var zxw="我要自学网";
	//String
	var zxw1=new String("我要自学网");
	var zxw2=zxw1+"123456";
	document.write(zxw2);
	alert(typeof zxw1);
	//Number
	var zxw1=new Number(123);
	var zxw2=zxw1+1;
	doucment.write(zxw2);
	alert(zxw1);
	//Boolean
	var zxw1=new Boolean(true);
	document.write(zxw1);
	alert(typeof zxw1);
</script>

二、对象创建的方法
js对象是包含很多属性的变量。js对象属性指的是与对象相关的值,js对象是无序属性的集合。
属性语法格式:名称:值(名称和值以冒号分隔)。
1.json模式创建对象,创建对象用大括号{};(最主要形式)

<script>
	var ren={name:"小明",sex:"男",age:12,height:1.8};
</script>

2.直接实例化,通过构造函数object()创建对象。

<script>
	var ren=new Object();
	ren.name="小明";
	ren.sex="男";
	alert(typeof ren);
	console.log(ren);
</script>

三、对象属性访问及添加

<script>
	var ren={name:"小明",sex:"男",age:12,height:1.8};
	//访问对象属性:(1)对象名["属性名"];(2)对象名.属性名(用的最多);
	var a=ren["age"];
	var a=ren.sex;
	alert(a);
	//对象添加属性
	ren.gcd=true;
	ren["yifu"]="red";
	alert(ren.gcd);
	console.log(ren);
</script>

四、对象属性修改及删除

<script>
	var ren={name:"小明",sex:"男",age:12,height:1.8};
	//修改对象属性
	ren.age=13;
	ren["height"]=185;
	//删除对象属性:delete关键词从对象中删除属性,会同时删除属性的值和属性本身
	delete ren.height;
	delete ren["age"];
	alert(ren.age);
	alert(ren.height);
	console.log(ren);
</script>

五、对象的易变性

<script>
	//变量不易变
	var a="我要自学网";
	var b=a;
	b=123;		//
	alert(a);	//a=我要自学网;b=123;
	document.write(b);
	//对象的易变形
	var c={name:"小明",sex:"男",age:12,height:1.8};
	var d=c;
	d.name="小红";//c和d是同一个对象,对d的任何改变都将改变c;
	console.log(c);
	console.log(d);
</script>

六、遍历对象

<script>
	var ren={name:"小明",sex:"男",age:12,height:1.8};
	//for-in遍历,for...in循环会为每个属性执行一次
	for(i in ren){  //属性名 in 对象
		document.write("我的"+i+"是"+ren[i]+"<br>");	
	}
</script>

七、构造函数初识
构造函数:主要功能初始化对象,可以想象成一套模板或一套方案。通过new函数名来实例化对象的函数叫构造函数,new就是在创建对象,从无到有,构造函数就是在为初始化的对象添加属性和方法。
规范:构造函数定义时首字母大写;

<script>
	function Ren(){     //规范
		this.name="";	//this:表示现在还不知道,没有具体的名称。
		this.sex="男";
		this.age="20";
	};
	var xiaoMing=new Ren();	//通过new()方法来创建具体的叫“xiaoMing”的人。通过new()方法创建具体的对象时,this才有具有提的名称,现在this就表示xiaoMing.
	xiaoMing.name="小明"; 
	xiaoMing["age"]=21;		  	 //修改
	xiaoMing.zzmm="共产党";		//添加
	delete xiaoMing.sex; 		//删除
	xiaoMing.benling=function(){
		alert("会开车、会做饭、会泡妞");
	};
	console.log(xiaoMing);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值