韩顺平 javascript教学视频_学习笔记10_js一维数组_一维数组细节

javascript——数组

内容介绍
  1. 一维数组(详细讲解)
  2. 排序,查找(排序和查找在javascript中不是重点)
  3. 多维数组(略讲,多维数组在javascript用的少)
编程语言中,数组是一个非常重要的知识点,不管是什么编程语言,数组都很重要。
学习目标
  1. 掌握js中的数组的使用
  2. 掌握js中常用的排序,查找方法(冒泡,顺序查找和二分查找这都是很重要的)

j avascript的数组特点非常明显:什么数据都可以往里面放,因为javascript是弱数据类型语言。

举个例子:
<html>  
	<head>  
		<script language="javascript"> 
		
			var weights=[3,5,1,3.4,2,50];  
			var all_weight=0;  
			var avg_weight=0;  
			//数组的遍历打印  
			for(i=0;i<weights.length;i++){  
				document.writeln(weights[i]+"<br/>");  
			}  
			document.writeln("<br/>");   
			
			for(i=0;i<weights.length;i++){  
				all_weight+=weights[i];  
			}  
			avg_weight=all_weight/weights.length;  
			
			document.writeln("总体重是"+all_weight+" 平均体重是"+avg_weight);  
			document.writeln("<br/>");  
			
			//保留到小数点2位  
			document.writeln("总体重是"+all_weight+" 平均体重是"+avg_weight.toFixed(2));  
			document.writeln("<br/>");  
			
			//如果想知道一个数据是什么类型的,可以使用 constructor 属性
			window.alert(avg_weight.constructor);  
		</script>  
	</head>  
	<body></body>  
</html>  




如果想知道 一个数据是什么类型的,可以使用 constructor 属性

var test = new Boolean();
window.alert(test.constructor);
			
var test = new String();
window.alert(test.constructor);

js基本语法——一维数组

一维数组
js中的数组是用于表示一组数据的集合,它由一个方括号[]包围,数组中的每个元素逗号分隔,数组元素可以是任意类型的数据。

  • 创建数组

         
var 数组名=[元素值,元数值,...]
元素的值可以是任意类型

例子:
          var a=["shunping".123,"1.1",4.5,true];
          var arr=[4,56,"hello world",true];

数组在内存中的存在形式:



先来看一段代码,对函数传递数值加深一下理解
<html>  
	<head>  
		<script language="javascript">  
			var myval=900;  
  
			function abc(val){  
				val=90;  
			}  
  
			abc(myval);  
			window.alert(myval);  
		</script>  
	</head>  
	<body></body>  
</html>  

这段代码的执行结果是:

普通数值类型在函数调用时传递数值,相当于拷贝了一份数值,并没有对其本身造成影响

下面再来看一段代码:
<html>  
	<head>  
		<script language="javascript">  
		
			var myarr=[456,90,900];  
  
			function abc(arr){  
				arr[0]=35;  
			}  
			
			abc(myarr);//调用函数  
			
			document.writeln("函数调用后<br/>");  
			for(var i=0;i<myarr.length;i++){  
				document.writeln(myarr[i]);  
			} 
			
		</script>  
	</head>  
	<body></body>  
</html>  

先看结果:

发现,第一个数值变成35了,没什么呢?

因为数组在传递时,是引用传递,也就是传递的是地址,而不是数值,下面从内存中进行分析

在 javascript 也有垃圾回收机制,和java一样
javascript的水很深,也不要把javascript想的太简单了,还得要好好学习

  • 数组的使用

数组名[下标]
数组越界
数组存在越界情况,比如 数组a只有三个元素, 但是 访问a[6]会怎样?

比如:var a=[23,"hello",4.5]
我们访问  a[2] 则输出4.5
如果我们访问 a[3] 则输出 undefined
为什么会出现undefined:
不存在这个数(a[3]),直接访问,相当于你访问一个没有定义的变量,如下:
window.alert(b);   b都没定义赋值,当然要报错

结论: 不能访问不存在的元素

数组的下标是从0开始编号的
比如:var a=[23,"hello",4.5];
a[0]=23
a[1]="hello"
a[2]=4.5
数组动态增长
var a=[2,3];
a[2]=56;
alert(a[2]);

javascript的数组可以动态增长,其他编译型语言是不能动态增长的
js的数组可以动态增长,java和c#要动态增长,要用类似集合的东西才能完成

java,c和c++都是编译语言,事先就把空间大小分配好了,而 javascript是动态语言,执行的时候才会变化
var a=[2,3];
window.alert("size="+a.length); //输出2

a[2]=56; //动态增长

window.alert("size="+a.length); //输出3,动态增长
alert(a[2]);

  • js数组的特点

js数组是可以动态的增长的,这个和java的数组不一样,有点类似于java中ArrayList

  • js数组的几个重要应用

  1. 得到数组的长度       使用数组名.length
  2. 拆分字符串               使用字符串.split(拆分数组)

字符串拆分成数组举例:

var str="hello world abc 顺平";
var arr=str.split(" ");//以空格为间隔
var arr1=str.split("");//一个字符一个字符的打散了
var arr2=str.aplit(" ",2);//取其中的前两个,取hello world
for(var i=0;i<arr.length;i++){
    document.write(arr[i]+" ");
}

想不起来的时候首先看文档

  • 遍历一维数组

遍历数组有很多种方法,可以使用for循环,while循环遍历数组,其中for循环遍历比较常用,
还可以如下使用,在 PHP 中也可以使用这种方法
for(var key in arr){
    window.alert(key+" = "+arr[key]);
}

一维数组——小结

  1. 数组可存放任意类型的数据
  2. 数组大小不必事先指定,可以动态增长
  3. 数组元素从0开始编号的
  4. 数组名可以理解为指向数组首地址的引用

arr=[45,90,0];

document.writeln(arr); //则输出 45 90 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值