对象和数组
对象其实就是一种引用类型,在ECMAScript中引用类型是一种数据结构,用于将数据与功能组织在一起。它是一门面向对象的语言,却不具备传统面向对象语言所支持的类和接口等基本结构。一、object类型:
创建有两种方式:
1.new(可省略):varbox=new Object(); //new 方式
box.name='李炎恢'; //创建属性字段
box.age= 28; //创建属性字段
2.字面量表示法:
varbox={ //字面量方式
name:'李炎恢', //创建属性字段
age:28
};
3.给对象创建方法:
varbox={
run:function(){ //对象中的方法
return'运行';
}
}
alert(box.run()); //调用对象中的方法
functionbox(obj) { //参数是一个对象
if(obj.name!= undefined)alert(obj.name); //判断属性是否存在
if(obj.age!= undefined)alert(obj.age);
}
box({ //调用函数传递一个对象
name:'李炎恢',
age:28
});
二、Array类型
创建数组方式:1.new(可省略):
varbox=new Array(); //创建了一个数组
varbox=new Array(10); //创建一个包含 10 个元素的数组
varbox=new Array('李炎恢',28,'教师','盐城'); //创建一个数组并分配好了元素
2.字面量表示法:
varbox=[]; //创建一个空的数组
varbox=['李炎恢',28,'教师','盐城']; //创建包含元素的数组
三、对象中的方法
1.转换方法:
varbox=['李炎恢',28,'计算机编程']; //字面量数组
alert(box); //隐式调用了 toString()
alert(box.toString()); //和 valueOf()返回一致
alert(box.toLocaleString()); //返回值和上面两种一致
2.栈方法:
varbox=['李炎恢', 28,'计算机编程']; //字面量声明
alert(box.push('盐城')); //数组末尾添加一个元素,并且返回长度
alert(box); //查看数组
box.pop(); //移除数组末尾元素,并返回移除的元素
alert(box); //查看元素
3.队列方法:
varbox=['李炎恢', 28,'计算机编程']; //字面量声明
alert(box.push('盐城')); //数组末尾添加一个元素,并且返回长度
alert(box); //查看数组
alert(box.shift()); //移除数组开头元素,并返回移除的元素
alert(box); //查看数组
- unshift()方法功能与shift()方法相反,为数组的前端添加一个元素:
alert(box.unshift('盐城','江苏')); //数组开头添加两个元素
注意:IE 浏览器对 unshift()方法总是返回 undefined 而不是数组的新长度。
4.重排序方法:reverse()和sort()。
(1)reverse()逆向排序,sort()从小到大排序。
(2)sort方法在数字排序有些问题,因为数字排序和字符串排序算法一样,所以要给sort方法传递一个函数参数。
functioncompare(value1,value2) { //数字排序的函数参数
if(value1<value2) { //小于,返回负数
return-1;
}elseif(value1>value2) { //大于,返回正数
return1;
}else{ //其他,返回 0
return0;
}
}
varbox=[0,1,5,10,15]; //验证数字字符串,和数字的区别
alert(box.sort(compare)); //传参
5.操作方法:
(1)concat():基于当前数组创建一个新数组。
varbox2= box.concat('计算机编程'); //创建新数组,并添加新元素
(2)slice():基于当前数组获取指定区域元素并创建一个新数组,主要用途是向数组的中部插入元素。
- 删除:
varbox2= box.splice(0,2); //截取前两个元素
- 插入:
varbox2= box.splice(1,0,'计算机编程','江苏'); //没有截取,但插入了两条
- 替换:
varbox2= box.splice(1,1,100); //截取了第 2 条,替换成 100
总结:
读书笔记,供大家参考!
感谢您的阅读!