js學習筆記-引用類型
1:引用類型很類似與面向對象中的類,引用類型的實例就類似於面向對象中的對象,但是實現方法不同。
2:Object類型是其他應用類型的“基類“,所有的應用類型都繼承了其基本的屬性和方法。例如:constructor,prototype;toString(),valueOf();
3:Array類型是一組值的有序列表,同時還提供了操作和轉換這些值的方法。
4:Date類型提供了日期和時間的操作
5:RegExp類型提供正則表達式的相關操作
6:Function類型,每個函數都是function類型的實例,其也有屬性和方法。
7:3種基本包裝類型(特殊的引用類型),是string,boolean,number三種基本類型的抽象。在操作三種基本類型時,實質創建了該包裝類型的對象,是對該對象進行操作。
8:單體內置對象,global和math,不依賴於宿主環境。在代碼執行之前,就已經存在。global,在瀏覽器中以windows對象承擔,所有全局變量和函數都是global對象。
Array(http://www.w3school.com.cn/jsref/jsref_obj_array.asp)
1:join(),以某個符號隔開數組元素。
tip: var a = ['a','b','c'];
alert(a.join('#')); //輸出爲:a#b#c#
2:slice(a,b),得到數組中的某個元素和某些元素。第二個參數可選
tip:var a = ['a','b','c','d'];
alert(a.slice(1)); //輸出爲:b
alert(a.slice(1,3)); //輸出:b,c.包前不包後
3:splice(a,b,c,d);a,b必須,c,d可選。向數組中增加或者刪除元素
tip:var a = ['a','b','c','d'];
alert(a.splice(1,1));//從第二個元素開始刪除一個元素,輸出a,c,d
alert(a.splice(1,1,'e'));//刪除一個元素,並增加一個元素。輸出爲a,d,e
Boolean(http://www.w3school.com.cn/jsref/jsref_obj_boolean.asp)1:使用new Boolean創建出來的是一個boolean對象,它的類型是object。
var falseObject = new Boolean(false);
var result = falseObject && true;
alert('1'+result); //true
alert('2'+falseObject);//false
alert('3'+falseObject.toString());//false
tip
var numberObject = new Number(10);
var numberValue = 99;
//使用toString,進製表示
alert(numberObject.toString()); //"10"
alert(numberObject.toString(2)); //"1010"
alert(numberObject.toString(8)); //"12"
alert(numberObject.toString(10)); //"10"
alert(numberObject.toString(16)); //"a"
//指定小數位數
alert(numberObject.toFixed(2)); //outputs "10.00"
//接受一個參數,表示數值的所有數字的位數
numberObject = new Number(99);
alert(numberObject.toPrecision(1)); //"1e+2"
alert(numberObject.toPrecision(2)); //"99"
alert(numberObject.toPrecision(3)); //"99.0"
alert(typeof numberObject); //object
alert(typeof numberValue); //number
alert(numberObject instanceof Number); //true
alert(numberValue instanceof Number); //false
1:ECMAScript 5中有新的api 獲取當前的時間,Date.now();輸出的是當前的時間戳
new Date();獲取的是當前的日期和時間,被格式化(建議使用)。
2:使用new Date();接受兩種類型的參數,Date.parse();Date.UTC()。等效於,new Date(year,month,day,min,s,ms),其中day,min,s,ms可省略
3:繼承的方法,toString();toLocalString();不同的瀏覽器實現會不同
//2000年1月1日,0時0分0秒
var y2k = new Date(2000, 0);
alert(y2k.toString());
alert(y2k.toLocaleString());
//2005年4月5日,17時55分55秒
var allFives = new Date(2005, 4, 5, 17, 55, 55);
alert(allFives.toString());
alert(allFives.toLocaleString());
Function
1:函數名作爲參數
function callSomeFunction(thefunction, para){
thefunction(para);
}
function add(para){
return (para + 10);
}
alert(callSomeFunction(add,10));//輸出20
2:函數聲明和函數表達式;
函數聲明://聲明位置無要求 函數表達式://聲明必須在調用前
function fun(a){ var fun = function(a){
return (a + 10); return (a + 10);
} };
function compare(){
return function(a,b){
if(a>b){
return 1;
}else if(a<b){
return -1;
}else{
return 0;
}
}
}
var a = [4,6,8,21,7,6,3,4,1];
a.sort(compare());
alert(a); //輸出1,3,4,4,6,6,8,21
4:apply方法:在當前特定的作用域下調用“父類”的方法(函數);
function add(a,b){
return (a+b);
}
function test(){
return add.apply(this,arguments);
}
alert(test(10,10)); //輸出20
5:arguments,callee,caller:在函數內部,arguments.callee該屬性是一個指針,指向擁有這個arguments對象的函數。caller,這個屬性保存着調用當前函數的函數的引用,如果是在全局作用域中調用當前函數,它的值爲null。
function inner(){
alert(arguments.callee);//指向擁有這個arguments對象的函數,即inner()
alert(arguments.callee.caller);//這個屬性保存着調用當前函數的函數的引用,即outer() }
function outer(){
inner();
alert(arguments.callee.caller);//null
}
outer();
6:bind();將函數的this值綁定到bind參數中
var color = "black";
function getColor(){
alert(this.color);
}
var test = {color:"white"};
alert(getColor.bind(test));// 輸出:white
7:length:函數參數的個數
Global
global:可以直接使用的方法和屬性
1:encodeURI,用於整個URI。對應的解碼,decodeURI();
encodeURIComponent,用於編碼查詢字符串。對應的解碼,decodeURIComponent();
tip:
var uri = "http://www.wrox.com/illegal value.htm#start";
//"http://www.wrox.com/illegal%20value.htm#start",空格被編碼
alert(encodeURI(uri));
//"http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start",大部分字符都被編碼
alert(encodeURIComponent(uri));
2:Windows對象:在全局作用域中聲明的所有變量和函數,都是Windows對象的屬性
3:其他,eval(),ECMAScript解析器。global對象中其他的屬性
Math
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.