什么是对象,其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。在ECMAScript 中引用类型是一种数据结构,用于将数据和功能组织在一起。它也常被称做为类,但 ECMAScript 中却没有这种东西。虽然 ECMAScript 是一门面向对象的语言,却不具备传统面向对象语言所支持的类和接口等基本结构。
一、Object类型
到目前为止,我们使用的引用类型最多的可能就是Object类型了。虽然Object的实例不具备多少功能,但对于在应用程序中的存储和传输数据而言,它确实是非常理想的选择。
创建Object类型有两种。一种是使用 new 运算符,一种是字面量表示法。
1、使用 new 运算符创建 Object
var box=new Object(); //new 方式 box.name='你的名字'; //创建属性字段 box.age=28; //创建属性字段 alert(box.name);
2、new 关键字可以省略
var box=Object(); alert(box); //省略了 new 关键字
3、使用字面量方式创建 Object
var box={ //字面量方式 name:'你的名字', //创建属性字段 age:28 }; alert(box.name);
4、属性字段也可以使用字符串星矢
var box={ 'name':'你的名字', //也可以用字符串形式 'age':28 }; alert(box.name);
5、使用字面量及传统复制方式
var box={}; //字面量方式声明空的对象 box.name='你的名字'; //点符号给属性复制 box.age=28; alert(box.name);
6、两种属性输出方式
var box={ 'name':'你的名字', //也可以用字符串形式 'age':28 }; alert(box.age); alert(box['age']); //中括号表示法输出,注意引号
PS:在使用字面量声明 Object 对象时,不会调用 Object()构造函数(Firefox 除外)。
7、给对象创建方法
var box={ run:function (){ //对象中的方法 return '运行'; } } alert(box.run()); //调用对象中的方法
8、使用 delete 删除对象属性
var box={'你的名字'}; alert(box.name); delete box.name; //删除属性 alert(box.name);
在实际开发过程中,一般我们更加喜欢字面量的声明方式。因为它清晰,语法代码少 ,而且还给人一种封装的感觉。字面量也是向函数传递大量可选参数的首选方式。
function box(obj){ //参数是一个对象 if (obj.name!=undefined) alert(obj.name); //判断属性是否存在 if (obj.age!=undefined) alert(obj.age); } box({ //调用函数传递一个对象 name:'你的名字', age:28 });
二、Array类型
除了 Object 类型之外,Array 类型是 ECMAScript 最常用的类型。而且 ECMAScript中的Array类型和其他语言中的数组有着很大的区别。虽然数组都是有序排列,但 ECMAScript中的数组每个元素可以保存任何类型。ECMAScript 中数组的大小也是可以调整的。
创建 Array 类型有两种方式:第一种是 new 运算符,第二种是字面量。
1、使用 new 关键字创建数组
var box=newArray(); //创建了一个数组 var box=newArray(10); //创建一个包含 10 个元素的数组 var box=newArray('你的名字',28,'设计师','广州'); //创建一个数组并分配好了元素
2、以上三种方法,可以省略 new 关键字。
var box=Array(); //省略了 new 关键字
3、使用字面量方式创建数组
var box=[]; //创建一个空的数组 var box=['你的名字',28,'设计师','广州']; //创建包含元素的数组 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=[ { //第一个元素是一个对象 name:'你的名字', age:28, run:function () { return 'run 了'; } }, ['马云','李彦宏',new Object()], //第二个元素是数组 '江苏', //第三个元素是字符串 25+25, //第四个元素是数值 newArray(1,2,3) //第五个元素是数组 ]; alert(box);
PS:数组最多可包含 4294967295 个元素,超出即会发生异常。
评论