JavaScript筆記三:參考型別
1、Object對象
建立Object對象,
var person = new Object(); var person = {
Person.name = “guoliang”; name : “guoliang”,
Person.age = 20; age : 20
};
另外屬性名稱也可以使用字串,,第二種屬於對象字面量標記法
訪問對象屬性可以使用”.”或“[ ]”,當屬性名稱包含非字母和非數字時只能使用”[ ]”訪問。一般建議使用“.”。
2、Array類型
JavaScript中的數組與其他的語言不同,它可以儲存人任何類型的資料,而且它的大小時動態可變的,會隨著資料的增加自動成長。
var color = new Array(); //建立color數組
或var color=[];
var color = new Array(20); //建立長度為20的數組
var color = new Array(“red”,”blue”,”green”);
或 var color= [“red”,”blue”,”green”];
new可以不帶,結果相同
使用length可以得到數組的長度,但是不僅僅可以唯讀,length還可以移除數組項或在末尾增加新項。並且如果設定的值超過當前數組大小的位置時,數組會重新計算長度值,即長度等於最後一項的索引值加1。
Array.isArray();可以判斷值是不是為數組。
push和pop 可以對數組末尾進行進棧和出棧的操作,而push (末端)和shift (前端)則可以實現進隊和出隊的操作。unshift(前端)和pop(末端)進隊和出隊。
排序:reverse()和sort();它們比較的是字串,但sort()在比較時會出現5>10的現象,因此要使用sort(compare(比較函數));
function compare(value1,value2) {
return value2-value1; //升序
}
concat(); //串連數組
slice();//得到數組中的值
splice();//刪除/插入/替換
index();//從前往後
lastIndex();//從後向前
every();filter();forEach();map();some();//迭代方法
reduce(); reduceRight();//縮小方法
3、Data類型
自UTC 1970年1月1日午夜(零時)起的毫秒數儲存的日期。
Data.parse(); Data.UTC();Data.now();
toDataString();toTimeString();toLocalDataString();toLocalTimeString();toUTCString();
4、RegExp類型
ECMAScript通過RegExp類型來支援Regex。
var expression = / pattern / flags;
模式(pattern)可以使任意的簡單或複雜的Regex ,標誌(flags)用來標誌Regex的行為(g:全域;i:不區分大小寫 ;m:多行模式)。
exec();專門為捕獲數組設計,接收應用模式的字串,返回第一個匹配項資訊的數組;index返回位置,input返回字串。
test();判斷模式與該參數是否匹配,Regex的valueof() 方法返回Regex本身
5、Function 類型
function sum(num1,num2){
return num1+num2;
}//可以使用 varanothersum=sum;此時anothersum和sum一樣
var sum = function(num1,num2){
return num1+num2;
};//有分號
alert(sum(10,10));
unction sum(num1,num2){
return num1+num2;
}//如上,代碼在執行之前其實已經將函式宣告提升至執行環境頂部,所以即使在執行代碼後面也沒問題。但是函數運算式就不能了。
alert(sum(10,10));
var sum = function(num1,num2){
return num1+num2;
};//會在運行期間發生錯誤
作為值的函數
function callSomeFunction(someFunction,someArgument){
return someFunction(someArgument) ;
}//即一個函數可以作為另一個函數的值,也可以一個函數返回另一個函數的值
函數的內部屬性:arguments和this
使用arguments.callee可以解除函數體內的代碼與函數名的耦合,不再依賴於單一的函數名。
函數的屬性和方法:length(函數希望接收的參數的個數)和prototype(儲存所有執行個體方法所在)
apply();call();特定的範圍中調用函數,實際上等於社會自函數體內this的值。兩者僅僅區別在接收參數的方式不同。
function sum(num1,num2){
feturn num1+num2;
}
function sum(num1,num2){
return sum.apply(this,arguments);
//return sum.call(this,num1,num2);
}//他們最大的好處是擴充函數賴以啟動並執行範圍,對象不需要與方法有任何耦合關係。bind()還可以綁定運行域。
6、基本封裝類型
Boolean、Number、String參考型別但同時也具有基本類型的行為。當它作為一個參考型別存在時只在當行代碼期間,執行完後,會自動銷毀。
7、單體內建對象
由ECMAScript實現提供的、不依賴於宿主環境的對象,這些對象在ECMAScript好吃呢過徐執行之前就已經存在了。開發人員不必顯式的執行個體化內建對象,因為他們已經執行個體化了。除了說過的Object、Array、String還有Global和Math.
上一篇http://www.bkjia.com/kf/201412/359006.html