1、Object對象
創(chuàng)建Object對象,
var person = new Object(); var person = {
Person.name = “guoliang”; name : “guoliang”,
Person.age = 20; age : 20
};
另外屬性名也可以使用字符串,,第二種屬于對象字面量表示法
訪問對象屬性可以使用”.”或“[ ]”,當屬性名包含非字母和非數字時只能使用”[ ]”訪問。一般建議使用“.”。
2、Array類型
JavaScript中的數組與其他的語言不同,它可以保存人任何類型的數據,而且它的大小時動態(tài)可變的,會隨著數據的增加自動增長。
var color = new Array(); //創(chuàng)建color數組
或var color=[];
var color = new Array(20); //創(chuàng)建長度為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類型來支持正則表達式。
var expression = / pattern / flags;
模式(pattern)可以使任意的簡單或復雜的正則表達式 ,標志(flags)用來標志正則表達式的行為(g:全局;i:不區(qū)分大小寫 ;m:多行模式)。
exec();專門為捕獲數組設計,接收應用模式的字符串,返回第一個匹配項信息的數組;index返回位置,input返回字符串。
test();判斷模式與該參數是否匹配,正則表達式的valueof() 方法返回正則表達式本身
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;
}//如上,代碼在執(zhí)行之前其實已經將函數聲明提升至執(zhí)行環(huán)境頂部,所以即使在執(zhí)行代碼后面也沒問題。但是函數表達式就不能了。
alert(sum(10,10));
var sum = function(num1,num2){
return num1+num2;
};//會在運行期間發(fā)生錯誤
作為值的函數
function callSomeFunction(someFunction,someArgument){
return someFunction(someArgument) ;
}//即一個函數可以作為另一個函數的值,也可以一個函數返回另一個函數的值
函數的內部屬性:arguments和this
使用arguments.callee可以解除函數體內的代碼與函數名的耦合,不再依賴于單一的函數名。
函數的屬性和方法:length(函數希望接收的參數的個數)和prototype(保存所有實例方法所在)
apply();call();特定的作用域中調用函數,實際上等于社會自函數體內this的值。兩者僅僅區(qū)別在接收參數的方式不同。
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引用類型但同時也具有基本類型的行為。當它作為一個引用類型存在時只在當行代碼期間,執(zhí)行完后,會自動銷毀。
7、單體內置對象
由ECMAScript實現提供的、不依賴于宿主環(huán)境的對象,這些對象在ECMAScript好吃呢過徐執(zhí)行之前就已經存在了。開發(fā)人員不必顯式的實例化內置對象,因為他們已經實例化了。除了說過的Object、Array、String還有Global和Math.