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為數組提供了很多方法,這些也只有到以后的實踐中逐步應用與探索了。