ECMAScript中没有提供类和接口等的定义,但它却是一门面向对象的语言,因为它可以通过其他方式实现类似高级语言的面向对象功能,这些内容将在后面的文章中进行一步步的总结。此篇仅对JS中对象作简要说明,重点汇总一些类似于对象的数组的常用方法。
对象
创建
上篇提到创建对象的两种方式:
使用new运算符创建Object
`var obj = new Object();`
使用字面量方式创建
`var obj = {};`
这里值得注意的是在使用字面量(常量)创建Object时不会调用构造函数。
属性和方法
添加:
使用new创建后的添加方式
~~~
obj.name = '张三'
obj.run =function(){
return'';
}
~~~
使用字面量创建方式
~~~
var obj = {
name : '张三';
run : function(){
return '';
}
};
~~~
注意点:使用数组方式也可进行属性的输出obj['name'];使用delete关键字可进行对象属性的删除
数组
Array类型与Object一样,同样是引用类型,而ESMAScript中的数组不同于其他语言中的数组,其中元素可以保存任何类型,该区别源于ESMAScript的变量类型松散性。
创建(与Object类型类似,数组的创建分为两种方式)
使用new关键字
~~~
var arr = new Array();
var arr = new Array(10);
var arr =new Array('张三','李四','王五');
~~~
使用字面量
~~~
var arr = [];
var arr = ['张三','李四','王五'];
~~~
使用
使用下标进行读取
`alert(arr[2]); //输出'王五'`
使用length属性获取数组元素个数
内置方法
转换
`toString()、valueOf()、toLocaleString()`
三个方法会返回相同的值,输出对象或数组信息时为默认调用方法
数组分隔符设置方法,默认为','如需修改可调用join()方法
~~~
var arr = ['张三','李四','王五'];
alert(arr.join('|')); //输出张三|李四|王五
~~~
栈、队列(数组)
~~~
push()/pop()
push()/shift()
~~~
类似于栈、队列对数组元素进行的操作,与shift()对应的另外一方法是unshift(),为数组前端添加元素。需要说明的是添加元素的方法会返回数组长度,删除元素的方法会返回删除的元素。
重排序
逆序reverse()、正序sort()
小结:
不得不说,ECMAScript为数组提供了很多方法,这些也只有到以后的实践中逐步应用与探索了。