JS中的數組與對象

1、數組:正則表達式

 一、數組的基本慨念:
       數組是在內存空間中連續存儲的一組有序數據的集合
      元素在數組中的順序,成爲下標。可使用下標訪問數組的每一個元素
 二、如何聲明一個數組
     ① 使用字面量聲明:
         在JS中,同一數組,能夠存儲各類數據類型
         例如:var reg = [1,"換個影子",true,{},null,func];  //調用數組中的函數:reg[5]();
     ②  使用new關鍵字聲明: var reg = new Array(參數);
          參數能夠是:
             a、參數省略:表示建立一個空數組;
             b、參數爲一個整數:聲明一個length爲指定長度的數組。可是,這個length能夠隨時可變可追加
       算法

var reg = new Array(5);
reg[6]=1;


            c、參數爲逗號分隔的多個數值:表示數組的多個值
               new Array(1,2,3,4) == [1,2,3,4];
    三、數組中元素的讀寫和增刪  
      ① 讀寫:經過下標訪問元素,下標從0開始 reg[1]="haha"
      ② 增刪:
         a、使用delete關鍵字,刪除數組的某一個值,刪除以後,數組的長度不變,對應位置元素變爲undefined。eg :delete reg[1];
         b、reg.pop():刪除數組的最後一個值,長度-1。至關於reg.length -= 1;
         c、reg.shift():刪除數組的第一個值。長度-1.
         d、reg.unshift(新值):在數組的第0個位置新增一個值;長度+1.
         e、reg.push(新值):在數組的最後一個位置新增一個值;長度+1.   
         f、直接訪問數組沒達到的下標,能夠動態追加
            reg[100] = 1;中間若是有空餘下標,將存入undefined;
    
    四、數組中的其餘方法:
       ① join():【原數組不會被改變】將數組用指定分隔符鏈接爲字符串,並返回。當參數爲空時,默認用逗號分隔;  var str = arr.join("-");
       
       ② concat():【原數組不會被改變】  將數組與多個數組的值鏈接爲新數組,並返回 var arr2= arr.concat(arr1,arr1)
           concat()鏈接時,若是有二維數組,則至多能拆一層[]
           [1,2]. concat([3,4],[5,6]) ->  [1,2,3,4,5,6]
           [1,2]. concat([3,4,[5,6]]) ->  [1,2,3,4,[5,6]]
      
       ③ push():數組最後增長一個,unshift()  數組開頭增長一個。返回新數組的長度; 原長度+1
           pop():刪除數組最後一個,   shift()刪除數組開頭一個。  返回被刪除的值    原長度-1
            ps:上述方法均會改變原數組
     
       ④ reverse():【原數組被改變】 將數組反轉倒序輸出 arr.reverse();
     
       ⑤ slice(begin,end):【原數組不會被改變】截取數組中的某一部分,並返回截取的新數組
          》》傳入一個參數,表示開始區間,默認截到數組最後
          》》傳入兩個參數:表示開始和結束的下標,左閉右開區間
          》》兩個參數能夠爲負數,表示從右邊開始數,最後一個值爲-1;
     
       ⑥ sort():【原數組被改變】 將數組進行升序排列:
          》》默認狀況下,會按照每一個元素首字母的ASCII值進行排序
           [1,3,2].sort() -> [1,2,3]
          》》傳入一個比較函數,手動指定排序的函數算法
             函數將默認接收兩個值a、b,若是返回值>0,則證實a>b;
         數組

arr.sort(function(a,b){
         return a-b;        //升序排列
       //  return b-a;        //降序排列      
 });


        
       ⑦ indexOf(value,index):返回數組中第一個value值所在的下標,若是沒有找到返回-1;
           lastIndexOf(value,index):返回數組中最後一個value值所在的下標,若是沒有找到返回-1;
              》》若是沒有指定index,則表示全數組查找value;
              》》若是指定了index,則表示從index開始。向後查找value;
       ⑧ forEach():專門用於循環遍歷數組,接收一個回調函數,回調函數接收兩個參數,第一個參數爲數組的值,第二個參數爲下標
           【IE8以前不支持此函數】
     函數

  arr.forEach(function(item,index){
        console.log(item);        //單獨打印數組的每一個值
})

 


       ⑨  map():數組映射。使用方法與forEach()相同。不一樣的是,map能夠有返回值,表示原數組的每一個值進行操做後,返回一個新數組
           【IE8以前不支持此函數】
        this

 var arr1 =  arr.map(function(item,index){
          console.log(item);        //單獨打印數組的每一個值
          return item+2;             //返回的新數組的值爲原數組的值加2
})


    五、二維數組與稀疏數組(瞭解)     
       ① 二維數組:數組中的值,依然是一個數組形式。
          eg:var arr = [[1,2],[3,4],[5,6]];//至關於兩行三列
           讀取二維數組:arr[行號][列號];
       ② 稀疏數組:數組中的索引是不連續的。(length要比數組中實際的元素個數大)spa

2、內置對像code

一、Boolean 類
       也有兩種聲明方式: 可使用字面量方式聲明一個單純的變量;用typeof檢測爲Boolean類型
                    也可使用new Boolean()聲明一個boolnean類型的對象。用typeof檢測爲Object類型對象

var bool = true;
var bool1 = new Boolean(true);

二、Number類
    Number.MAX_VALUE:返回NUmber類可表示的最大值
    Number.MIN_VALUE:返回NUmber類可表示的最小值
☆ num1.toString():將數值類型(num1)轉換爲字符串類型
    num1.toLocaleString():將數值按照本地格式順序轉換爲字符串,通常從右開始,三個一組加逗號分隔
☆ num1.toFixed(n):將數字保留n爲小數,並轉爲字符串格式
    num1.toPrecision(n):將數字格式化爲指定長度,
        n表示不含小數點的位數長度,若是n小於原數字長度,則用科學計數法表示,若是n大於原數字長度,則小數點後補零;
    num2.valueOf():返回Number對象(num2)的基本數字值;blog

三、 string類
    一、 屬性:.length: 返回字符串的長度,即字符數;
       字符串支持相似數組的下標訪問方式:str[0];
    二、.toLowerCase(): 將字符串全部字符轉成小寫
        .toUpperCase():將字符串全部字符轉成大寫
     三、.charAt(n):截取數組的第n個字符至關於str[n];
     四、.substring(begin,end):從字符串中截取子串
         》》只傳入一個參數:從begin到最後
         》》傳入兩個參數:從begin到end的區間,左閉右開;
     五、.indexOf("str",index):查找子串在字符串中出現的位置,若是沒有找到,返回-1,其餘同數組的indexof方法;
        .lastIndexOf("i",4):同數組;
     六、.split("分隔符"):將字符串用已指定分隔符分隔,存入數組中,傳入空""表示字符串的每一個字符分開放入數組
     七、.replace("old","new"):將字符串的第一個old替換爲new。 返回新字符串   原字符串不變
        》》第一個參數能夠是,普通字符串,也能夠是正則表達式
        》》若是是普通字符串,則只替換第一個old,若是是正則表達式,則能夠根據正則的寫法要求,進行替換排序

四、Date時期類 
  一、 new Date():返回當前最新時間
     new Date("2017,8,23,12:34:56");返回指定的時間
  二、經常使用方法:(當前時間)
   .getFullYear():獲取4位年份
   .getMonth():獲取月份0-11
   .getDate():獲取一個月中的第幾天  1-31
   .getDay():獲取一週的第幾天  0-6  0:表示周天
   .getHours():獲取小時
   .getMinutes():獲取分鐘
   .getSeconds():獲取秒

 3、自定義對象
 一、基本慨念:
     ① 對象:對象是擁有一系列無序屬性和方法的集合;
     ② 鍵值對:對象中的數據,是以鍵值對的方式存在。對象的每一個屬性和方法,都對應一個鍵名,以鍵取值;
     ③ 屬性:描述對象特徵的一系列變量,稱爲屬性。【對象中的變量】
     ④ 方法:描述對象行爲的一系列的函數,稱爲方法。【對象中的函數】
     
 二、對象的聲明:
     ① 使用字面量聲明:var obj = {
                    key1 : value1,
                    key2 : value2,
                    func1 : function(){}
                  }
   
       >>對象中的數據是以鍵值對的形式存儲,鍵與值之間用:分隔,鍵值對之間用,分隔。
       >>對象中的鍵能夠是除了數組、對象之外的任何數據類型。可是,通常咱們只用普通變量名做爲鍵
       >>對象中的值能夠是任何數據類型,包括數組和對象。
    
    ② 使用new關鍵字聲明:var obj = Object();  //聲明一個空的對象
                   Object.key1 = value1; //給對象添加鍵值對
                   Object.key2 = value2;
                   Object.func1 = function(){};
          
   三、對象中屬性和方法的讀寫:    ① .運算符:       對象外部: 對象名.屬性  對象名.方法       對象內部: 對象名.屬性 ,或this.屬性              ② 經過["key"]調用: 對象名["屬性名"]  對象名["方法名"]();        >>若是鍵中包含特殊符號,則只能用第②中方式;             >>對象中直接寫變量名,默認爲調用全局變量。         若是須要調用對象自身的屬性或方法。須要使用對象名.屬性或this.屬性。           rson.age  this.age 均可以,但推薦使用this關鍵字。    ③ 刪除對象的屬性和方法:delete 對象名.屬性名/方法名          delete person.age;

相關文章
相關標籤/搜索