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

javascript——数组

内容介绍

  1. 一维数组(详细讲解)
  2. 排序,查找(排序和查找在javascript中不是重点)
  3. 多维数组(略讲,多维数组在javascript用的少)
编程语言中,数组是一个非常重要的知识点,不管是什么编程语言,数组都很重要。

学习目标

  1. 掌握js中的数组的使用
  2. 掌握js中常用的排序,查找方法(冒泡,顺序查找和二分查找这都是很重要的)

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

举个例子:
  
	  
		  
	  
	  
  

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

韩顺平 javascript教学视频_学习笔记10_js一维数组_一维数组细节_第2张图片
如果想知道 一个数据是什么类型的,可以使用 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];

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

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

先来看一段代码,对函数传递数值加深一下理解
  
	  
		  
	  
	  
  

这段代码的执行结果是:

韩顺平 javascript教学视频_学习笔记10_js一维数组_一维数组细节_第4张图片
普通数值类型在函数调用时传递数值,相当于拷贝了一份数值,并没有对其本身造成影响
韩顺平 javascript教学视频_学习笔记10_js一维数组_一维数组细节_第5张图片
下面再来看一段代码:
  
	  
		  
	  
	  
  

先看结果:
韩顺平 javascript教学视频_学习笔记10_js一维数组_一维数组细节_第6张图片
发现,第一个数值变成35了,没什么呢?

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

韩顺平 javascript教学视频_学习笔记10_js一维数组_一维数组细节_第7张图片
在 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

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

  • 遍历一维数组
遍历数组有很多种方法,可以使用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

你可能感兴趣的:(Javascript,学习笔记)