您的位置:首页 > Web前端 > JavaScript

JavaScript中的对象和数组

2017-09-30 18:00 357 查看
对象其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起。它也常被称做为类, 但 ECMAScript中却没有这种东西。 虽然 ECMAScript是一门面向对象的语言, 却不具备传统面向对象语言所支持的类和接口等基本结构

1. Object类型

对于在应用程序中的存储和传输数据而言,Object类型是非常理想的选择

两种创建对象的方式:

1) new关键字创建对象

var user = newObject(); //new关键字可以省略
user.name = '张三';      //创建属性字段
user.age = 20;


2)用字面量方式创建 Object

var user = {        //字面量方式
name : '张三',   //创建属性字段,多个属性用逗号隔开
age : 20
};


两种属性输出方式:

alert(user.age);        //点表示法输出
alert(user['age']);     //中括号表示法输出,注意引号


给对象创建方法:

var user = {        //字面量方式
name : '张三',   //创建属性字段,多个属性用逗号隔开
age : 20,
run: function() { //对象中的方法
return '执行了user的方法';
}
};
alert(user.run());


删除对象属性:

delete user.age;


2. Array类型

除了 Object类型之外, Array类型是 ECMAScript最常用的类型。

ECMAScript中的 Array类型和其他语言中的数组有着很大的区别。虽然数组都是有序排列,但 ECMAScript中的数组每个元素可以保存任何类型。 ECMAScript中数组的大小也是可以调整的

类似于对象,数组也有两种创建方式:

1) new关键字创建数组(new关键字可以省略)

var array= newArray();    //创建了一个数组
var array= newArray(10); //创建一个包含 10个元素的数组
var array= newArray('张三',20,'学生'); //创建一个数组并分配好了元素


2)用字面量方式创建数组

var array= []; //创建一个空的数组
var array= ['张三',20,'学生']; //创建包含元素的数组


可以通过array.length获取到数组的长度,但是要注意的是对于[‘张三’,20,’学生’,]的一个数组,IE浏览器会认为它有四个元素,所以要注意逗号的个数

3. 数组中的方法

栈方法:

push()方法可以接收任意数量的参数, 把它们逐个添加到数组的末尾, 并返回修改后数组的长度。

而pop()方法则从数组末尾移除最后一个元素,减少数组的length值,然后返回移除的元素

队列方法:

通过push()向数组末端添加一个元素,然后通过shift()方法从数组前端移除一个元素。

ECMAScript还为数组提供了一个 unshift()方法,它和 shift()方法的功能完全相反。unshift()方法为数组的前端添加一个元素

重排序方法:

数组中已经存在两个可以直接用来排序的方法: reverse() 用于逆向排序,sort() 从小到大排序

可以通过给 sort()方法传递一个函数参数,自定义排序方法

function compare(value1,value2) { //数字排序的函数参数
if (value1< value2) { //小于,返回负数
return-1;
} else if (value1> value2) {     //大于,返回正数
return1;
}else{ //其他,返回0
return0;
}
//var array=[0,1,5,10,15];
//array.sort(compare)); //传参


操作方法:

ECMAScript为操作已经包含在数组中的元素提供了很多方法。

concat()方法可以基于当前数组创建一个新数组。

var array=['张三',20,'学生'];  //当前数组
var array2=array.concat('计算机编程');  //创建新数组,并添加新元素
alert(array2);  //输出新数组
alert(array);   //原来的数组数组不变


slice()方法可以基于当前数组获取指定区域元素并创建一个新数组。

var array=['张三',20,'学生'];  //当前数组
var array2=array.slice(1);  //相当于array.slice(1,3),包括头不包括尾的区间
alert(array2);  //20,学生
alert(array);  //原来的数组数组不变


splice()主要用途是向数组的中部插入元素。

splice中的删除功能:
var array=['张三',20,'学生'];  //当前数组
var array2=array.splice(0,2); //注意这里表示 从第0个位置 取两个 ,不是表示区间
alert(array2); //返回截取的元素
alert(array);  //原来数组要删除被截取的元素

splice中的插入功能:
var array=['张三',20,'学生'];  //当前数组
var array2=array.splice(1,0,'计算机','山东'); //注意这里表示 从第1个位置 取0个 并添加两条
alert(array2); //取0条,所以这个地方输出为空
alert(array);  //这里输出插入之后的

splice中的替换功能:
var array=['张三',20,'学生']; //当前数组
var array2=array.splice(1,1,100); //截取了第2条,替换成100
alert(array2); //输出截取的20
alert(array);  //输出替换之后的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对象 数组