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
String(http://www.w3school.com.cn/jsref/jsref_obj_string.asp

    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);
    }                                                                         };

3:作爲返回值;
    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
對數學的相關操作(www.w3school.com.cn/jsref/jsref_obj_math.asp

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章