13.1 Object类型
到目前为止,我们使用的引用类型最多的可能就是Object类型了。虽然Object的实例不具备多少功能,但对于在应用程序中的存储和传输数据而言,他确实是非常理想的选择。
对象包含哪些元素: 1.属性(字段) 2.方法(函数)
创建Object类型有两种。一种是使用new运算符,一种是字面量表示法。 1. 使用new运算符创建Object
var box=new Object(); //new方式
box.name=’吴志涛’; //创建属性字段 box.age=22; //创建属性字段
2. new关键字可以省略
var box=Object();
//省略了new关键字
3. 使用字面量方式创建Object
var box={ name: ‘吴志涛’, age: 22 };
//字面量方式 //创建属性字段 //创建属性字段
4. 属性字段也可以使用字符串形式
var box={
‘name’: ‘吴志涛’, ‘age’: 22 };
5. 使用字面量及传统赋值方式
var box={}; box.name=’吴志涛’; box.age=22;
6. 两种属性输出方式
alert(box.age); alert(box[‘age’]);
//字面量方式声明空的对象 //点符号给属性赋值
//也可以用字符串形式,属性可以用引号括起来
//点表示法输出
//中括号表示法输出,注意引号
PS:在使用字面量声明Object对象时,不会调用Object()构造函数(Firefox除外)。
7. 给对象创建方法
var box={
}
run: function(){ return ‘运行’; }
//对象中的方法
alert(box.run());
//调用对象中的方法
另一种对象创建方法的方式:
function box(){return ‘你好’;} var obj={
run:box }
alert(obj.run());
8. 使用delete删除对象属性
delete box.name;
//创建一个函数
//把函数名(没有括号)赋值给对象的方法名
//删除box对象中的name属性
在实际开发过程中,一般我们更加喜欢字面量的声明方式。因为它清晰,语法代码少,而且还给人一种封装的感觉。字面量也是向函数传递大量可选参数的首选方式。 function box(obj){ //参数是一个对象
if(obj.name != undefined) alert(obj.name); //判断属性是否存在 if(obj.age != undefined) alert(obj.age);
}
box({ name: ’吴志涛’, age: 22 });
//匿名对象
//调用函数传递一个对象
13.2 Array类型
除了Object类型之外,Array类型是ECMAScript最常用的类型。而且ECMAScript中的Array类型和其他语言中的数组类型有这很大的区别。虽然数组都是有序排列,但ECMAScript中的数组每个元素可以保存任何类型。ECMAScript中数组的大小也可以调整的。
创建Array类型有两种方式:第一种是new运算符,第二种是字面量。 1. 使用new关键字创建数组
var box=new Array(); //创建了数组 var box=new Array(10); //创建了一个包含10个元素的数组 var box=new Array(‘吴志涛’, 22, ‘未婚’); //创建了一个数组并分配好了元素
2. 以上三种方法,可以省略new关键字。
var box=Array(); //省略了new关键字
3. 使用字面量方式创建数组
var box=[]; //创建一个空的数组
var box=[‘吴志涛’, ‘未婚’, 22]; //创建了包含元素的数组 var box=[1,2,]; //禁止这么做,IE会识别3个元素 var box=[,,,,,,,]; //同样,IE会有识别问题
PS:和Object一样,字面量的写法不会调用Array()构造函数。(Firefox除外)。
4. 使用索引下标来读取数组的值
alert(box[2]); box[2]=’学生’; box[4]=’计算机编程’;
//获取第三个元素 //修改第三个元素 //增加第五个元素
5. 使用length属性获取数组元素量
alert(box.length); //获取元素个数 box.length=10; //强制元素个数
box[box.length]=’JS技术’; //通过length给数组增加一个元素
6. 创建一个稍微复杂一点的数组
var box=[
{
},
[‘马云’, ‘李彦宏’, new Object()], //第二个元素是数组 ‘江苏’, //第三个元素是字符串 25+25, //第四个元素是数值 new Array(1,2,3) //第五个元素是数组 ];
alert(box);
PS:数组最多可包含4294967295个元素,超出即会发生异常。
name: ‘吴志涛’, age: 28,
run: function(){ return ‘run 了’ }
//第一个元素是一个对象
13.3 对象中的方法
转换方法
对象或数组都具有toLocaleString(),toString()和valueOf()方法。其中toString()和valueOf()无论重写Lee谁,都会返回相同的值。数组会将每个值进行字符串形式的拼接,以逗号隔开。 var box=[‘吴志涛’, 22, ’计算机网络’]; //字面量数组
alert(box); //隐式调用了toString()
alert(box.toString()); alert(box.toLocaleString()); //和valueOf()返回一致 //返回值和上面两种一致
默认情况下,数组字符串都会以逗号隔开。如果使用join()方法,则可以使用不同的分隔符来构建这个额字符串。
var box=[‘吴志涛’, 22, ‘计算机网络’];
alert(box.join(‘|’)); //吴志涛 | 22 | 计算机网络 栈方法
ECMAScript数组提供了一种让数组的行为类似于其他数据结构的方法。也就是说,可以让数组像栈一样,可以限制插入和删除项的数据结构。栈是一种数据结构(后进先出),也就是说最新添加的元素最早被移除。而栈中元素的插入(或叫推入)和移除(或叫弹出),只发生在一个位置——栈的顶部。ECMAScript为数组专门提供了push()和pop()方法。
push()方法可以接受任意数量的参数,把他们逐个添加到数组的末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一个元素,减少数组的length值,然后返回移除的元素。 var box=[‘栈方法’, 22, ‘计算机编程’]; //字面量声明
alert(box.push(‘盐城’)); //数组末尾添加一个恩元素,并且返回长度
alert(box); //查看数组
box.pop(); //移除数组末尾元素,并返回移除的元素 alert(box); //查看元素 队列方法
栈方法是后进先出,而队列方法就是先进先出。列队在数组的末端添加元素,从数组的前端移除元素。通过push()向数组末端添加一个元素,然后通过shift()方法从数组前端移除一个元素。
相关推荐: