天天看點

JavaScript基礎回顧知識點記錄3

  • js 中 垃圾回收
    //将不在使用的對象設定為null , js就會自動進行垃圾回收機制
      var obj = {};
      obj = null;   
               
  • js 中 數組基本介紹
    • 數組也是一個對象
    • 與普通對象功能類似,用來存儲值。對象用字元串作為屬性名(索引),數組用數字(從0開始)作為索引
    • 數組的存儲性能比普通對象好
      //數組的基本操作
        var arr = new Array();
        var arrs = [];  // 推薦使用這種方式建立數組
        arr[0] = 1;
        arr[1] = 2;
        arrs[0] = 11;
        arrs[11] = 22;
        console.log(arr); //輸出 [1, 2]
        console.log(arrs);  //輸出[11, empty × 10, 22]
        console.log(arr.length);  //輸出2
        console.log(arrs.length); //輸出12
        arr.length = 1;
        console.log(arr); //輸出[1]
        
        注意:
          1、對于連續數組,使用length可以擷取數組的長度; 對于非連續數組,使用length會擷取到數組的最大索引+1
          2、修改數組長度,如果修改值大于原長度,則預設添加元素個數。如果小于原長度,則删減元素個數
                 
  • js 中 數組常用方法介紹
    var arr = ["zhangsan","lisi","wangwu"];
    		
    		// push() 方法,向數組末尾添加一個或多個元素,并傳回添加後的數組長度
    		var res = arr.push("qianliu","zhaoqi");  // 檢視push的傳回值
    		console.log(arr);	//輸出["zhangsan", "lisi", "wangwu", "qianliu", "zhaoqi"]
    		console.log(res);	//輸出5,傳回值為數組長度
    		
    		
    		// pop() 方法,删除數組最後一個元素,并傳回被删除元素
    		var res2 = arr.pop();
    		console.log(res2);	//輸出["zhangsan", "lisi", "wangwu", "qianliu"]
    		console.log(arr);	//輸出zhaoqi,傳回值為被删除元素
    		
    		
    		// slice() 方法 從數組提取指定元素。該方法不會改變原數組,封裝到一個新數組中傳回。
    		// 第一個參數:截取開始位置的索引,包含開始索引。第二個參數:截取結束位置的索引,不包含結束索引。
    		// 第二個參數可以不寫,預設從開始位置全部截取。
    		// -1 表示倒數第一個,-2表示倒數第二個
    		var res3 = arr.slice(0,2);
    		var res4 = arr.slice(0);
    		var res5 = arr.slice(-1);
    		var res6 = arr.slice(-2);
    		var res7 = arr.slice(0,-1);
    		console.log(res3);	//輸出["zhangsan", "lisi"]
    		console.log(res4);	//輸出["zhangsan", "lisi", "wangwu"]
    		console.log(res5);	//輸出["wangwu"]
    		console.log(res6);	//輸出["lisi", "wangwu"]
    		console.log(res7);	//輸出["zhangsan", "lisi"]
    		
    		
    		// splice() 方法, 删除數組中指定的元素,操作的是元素組,并傳回被删除元素
    		// 第一個參數表示開始位置的索引,第二個參數表示删除的數量
    		var res8 = arr.splice(1,2);
    		console.log(arr);	//輸出["zhangsan"]
    		console.log(res8)	//輸出["lisi", "wangwu"]
    		
    		// 其他函數不多加贅述,需用的時候查手冊即可
    		
               
  • js 中 數組周遊
    //for循環周遊
    		for(var i = 0; i<arr.length;i++) {
    			console.log(arr[i]);
    		}
    	  //forEach周遊;	(這個方法僅支援IE8以上的浏覽器使用)
    	  //該方法需要回調函數作為參數 ,該回調函數中傳遞三個參數:
    	  //第一個參數:目前周遊的元素值。第二個參數:目前周遊的索引值。第三個參數:目前周遊的數組
    		arr.forEach(function(value,index,obj){
    			console.log(value); 
    			console.log(index);
    			console.log(obj);
    		})
               
  • js 中 apply方法和call方法
    // 這兩個方法都是函數對象的方法。 
        // 調用這兩個方法後,可以将一個對象指定為第一個參數,此時該函數執行時的this将變為這個對象。
        // call()方法可以将實參在對象之後依次傳遞
        // apply()方法需要将實參封裝成一個數組再傳遞
    
        function fun(a,b) {
          console.log(a);
          console.log(b);
          console.log(this);
        }
        var obj = {name:"zhangsan"};
        fun(1,2);	//this輸出window 
        fun.call(obj,1,2);	//this輸出{name:"zhangsan"}
        fun.apply(obj,[1,2]);	//this輸出{name:"zhangsan"}
               
  • js 中 arguments(實參清單)
    // 在調用函數時,浏覽器會傳遞兩個隐含參數
        // 第一個:函數的上下文對象 this; 第二個:封裝實參的對象arguments(類數組對象)
        // 傳遞的所有實參都會被封裝到arguments中
        // 不定義形參時,仍可以使用arguments來使用實參
        
        function fun(){
          console.log(arguments[0]);  //輸出Arguments(3)["hello", true, "world", callee: ƒ, Symbol(Symbol.iterator): ƒ]
          console.log(arguments.length);  //輸出3,實參數量
        }
        
        fun('hello',true,'world');
               
  • js 中 Date對象 (時間)
    // 建立Date對象
        var d = new Date(); //目前時間
        var d2 = new Date("12/03/2022 12:12:12"); //建立指定時間(日期格式為:月份/日/年/ 時:分:秒)
        var date = d2.getDate();  // 擷取目前日期是幾日
        var day = d2.getDay();  // 擷取目前日期周幾
        
               
  • js 中 Math
    //絕對值
       console.log(Math.abs(-1));  //輸出1
       //向上取整
       console.log(Math.ceil(2.1));  //輸出3
       //向下取整
       console.log(Math.floor(2.1)); //輸出2
       //四舍五入取整
       console.log(Math.round(2.1)); //輸出2
       //生成随機數 x-y之間的随機數:  Math.round(Math.random()*(y-x)+x)
       console.log(Math.round(Math.random()*19)+1);	//1-20的随機數
       //擷取多個數中的最大值/最小值
       var max = Math.max(10,11,12,13);  
       var min = Math.min(1,2,3,4);
       console.log(max); //輸出13
       console.log(min); //輸出1
               

繼續閱讀