04_Javascript初步次日(下)

  1. 錯誤對象
        try{
            aa();//這是一個未被定義的方法
        }catch(e){
            alert(e.name+":"+e.message);//輸出:ReferenceError:aa is not defined
        }finally{
            alert('我老是被調用');
        }

     

  2. 對象是經過引用傳遞的
  3. 數組
    1. 調用時傳遞一個參數表示數組長度 - var arr=new Array(5)
      超過兩個參數則顯示指定了數組中的值 - var arr=new Array(1,2,3'name',null,,);
    2. arr.length只能計算索引爲非負整數的元素
      一、var arr=[,,] - arr.length的值爲2
      二、
          var arr=[1,2,3];
          arr['name']='yolo';//輸出3,'name'的索引不是非負整數
          arr[100]='yolo';//輸出101,length從0開始計算
          document.write(arr.length);
          
          var arr1=[1,2,3,4,5];
          console.log(arr1.length);//輸出5
          console.log(arr1);// 輸出 "1,2,3,4,5"
          arr1.length=3;
          console.log(arr1);//輸出 "1,2,3",至關於刪除了第三個以後的元素,若是要刪除全部元素,只須要arr1.length=0;
          Object.defineProperty(arr1,'length',{
              writable:false
          });//將length屬性設爲不可寫的
          arr1.length=0;
          console.log(arr1.length);
    3. push()是用來在數組末端添加項,shift()在移除數組的第一個項(前端),實現隊列的先進先出FIFO;pop()在數組末端移除項,unshift()在數組前端添加項;(http://blog.csdn.net/rachel_2016/article/details/52448170前端

  4. 遍歷數組
    for循環遍歷下標連續的數組
        var arr=[1,2,'name'];
            for(var i=0;i<arr.length;i++){
                console.log(arr[i]);
            }
    
    for-in遍歷數組,包含繼承下來的元素
            var arr=[];
            arr['name']='yolo';
            arr['age']=23;
            for(var i in arr){
                console.log(arr[i]);
            }
            若是隻想遍歷自身屬性,能夠加if條件:if(arr.hasOwnProperty(i))
            
    forEach()遍歷數組(E大寫),一樣只能遍歷下標連續的數組
            var arr=[1,2,3]
            arr.forEach(function(x){
                console.log(x);
            })
    
        var arr=[1,2,3,4];
        arr['name']='yolo';//forEach循環不能遍歷到它
        arr.forEach(my);
        function my(element,index,array){
            console.log('要處理的數組爲:'+array);
            console.log('元素索引:'+index+"--元素值:"+element);
        }
        輸出:
        要處理的數組爲:1,2,3,4
        元素索引:0--元素值:1
        要處理的數組爲:1,2,3,4
        元素索引:1--元素值:2
        要處理的數組爲:1,2,3,4
        元素索引:2--元素值:3

     


      
  5.  數組的經常使用函數
    1.  
       var arr=[1,2,11,20];
          console.log(arr.join('-'));//join指定分隔符,輸出: "1-2-11-20"
          console.log(arr.reverse());//reverse反轉數組,輸出: "20,11,2,1"
          console.log(arr.sort());//sort()按照Unicode排序,輸出:"1,11,2,20"
          //能夠指定排序函數
          arr.sort(function(a,b){
              return a-b;//若是a比b大,返回一個大於0數,此時b排在a前面,即從小到大排序
          });
          console.log(arr);//輸出:"1,2,11,20"
          //經過元素屬性排序,輸出: "enid"     "join"    "yolo"
          var user=[
              {name:'yolo',age:23},
              {name:'enid',age:18},
              {name:'join',age:22},
              
          ];
          user.sort(function(a,b){
              if(a.name>b.name) return 1;
              if(a.name<b.name) return -1;
              return 0;
          });
          for(var i in user){
              console.log(user[i].name);
          }
          
          
              var arr=[1,2];
          res=arr.concat(3,4);//arr.concat([3,4]);
          res=arr.concat([[3,4,5]]);//輸出:[1, 2, Array(3)]
          console.log(res);//輸出:"1,2,3,4"

          var arr=[1,2,3,4];
          res=arr.slice(0,2);//從數組中截取指定元素,slice(start,length),忽略length,則截取到末尾;輸出: "1,2"
          console.log(res);
          
              var arr=['a','b','c','d','e'];
          res=arr.splice(0,1);//從0開始,截取一個元素並返回這個元素,從原數組中刪除這個元素
          console.log(res);//輸出:"a"
          console.log(arr);//輸出:"b,c,d,e"

          var arr=['a','b','c','d','e'];
          var res=arr.splice(2);//從2開始截取到最後
          console.log(res);//輸出:"c,d,e"
          console.log(arr);//輸出:"a,b"

          var arr=['a','b','c','d','e'];
          var res=arr.splice(0,2,'!','&','?');//從0開始,截取兩個元素,額外添加後面的三個元素
          console.log(res);//輸出:"a,b"
          console.log(arr);//輸出: "!,&,?,c,d,e"
          
          
              var arr=[1,2,3];
          //map每一個元素都調用指定函數
          res=arr.map(function(x){
              return x*x;
          });//輸出:"1,4,9"
          console.log(res);
          
              var arr=['a!','b','c!'];
          res=arr.map(my);
          function my(x){
              return x.replace(/!/g,'?').toUpperCase();
          };
          console.log(res);//輸出:"A?,B,C?"
          
              var arr=[1,3,5,78];
          res=arr.filter(function(x){
              return x<5;
          });
          console.log(res);//輸出:"1,3"
          
                  
          var arr=[1,3,5];
          res=arr.reduce(function(a,b){
              return a+b;
          });
          console.log(res);//輸出:9
          //解析:第一次傳入:1,3    返回4
      //            第二次傳入:4,5     返回9

          //every檢測是否每一個元素都符合條件,some檢測是否有一個以上元素符合條件,返回布爾值
          var arr=[1,2,3,18];
          var res=arr.every(function(x){
              return x<=10;
          });
          console.log(res);//輸出:false
          
          //indexOf    last
      var arr=['a','b','c','ab','ac','a'];
      var res=arr.indexOf('a');//輸出:0
      res=arr.indexOf('A');//不存在,輸出-1
      res=arr.indexOf('a',2);//從索引2開始搜索,輸出:5
      res=arr.lastIndexOf('a');//輸出:5,從最後一個元素開始搜索
      console.log(res);


      Array.isArray(arr);//檢測arr是不是一個數組
      arr.toString();//將數組轉換爲字符串
相關文章
相關標籤/搜索