JavaScript中的对象和数组

对象其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。
在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);  //输出替换之后的
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值