1. 程式人生 > >JS中的內置對象

JS中的內置對象

bstr ros turn concat 特殊字符 大寫 object類 算法 fun

JS中的數組

1、數組的基本概念?   數組是在內存空間中連續存儲的一組有序數據的集合。   元素在數組中的順序,稱為下標。可以使用下標訪問數組的每個元素。 2、如何聲明一個數組?   ① 使用字面量聲明:var arr = []; // 聲明了一個空數組   【註】在JS中,同一數組,可以存儲各種數據類型   ② 使用new關鍵字聲明:var arr = new Array(參數);     參數:a. 省略 表示創建一個空數組;        b. 整數 表示聲明一個length為指定長度的數組。 但是這個length可以隨時可變可增加,即數組的長度可變可增加。        c. 參數為逗號分隔的多個數值,表示數組的多個值。
new array(1,2,3) == [1,2,3]; 3、數組中,元素的讀寫/增刪?   ① 讀寫:通過下標訪問元素,下標從0 開始。eg. arr[1] = "haha";   ② 增刪:     a. 使用delete關鍵字, 刪除數組中的某一個值,刪除後數組的長度不變,對應位置變為undefined。 eg.delete arr[1]; // 刪除數組中的某一個值     b. arr.pop(); 刪除數組中的最後一個值。相當於 arr.length -= 1;與delete的區別:數組長度-1     c. arr.shift(); 刪除數組中的第一個值。     d. arr.unshift(值); 在數組開頭(第0個位置)新增一個值。
    e. arr.push(值); 在數組最後一個位置新增一個值。     f. 直接訪問數組沒達到的下標,可以動態追加。arr[100] = 1; 中間如果有空余下標,將存入undefined。 4、數組中的其他方法(函數)   ① join("分隔符") :將數組用指定分隔符鏈接為字符串,當參數為空時,默認用,分隔。   ② concat():原數組不會被改變。將數組與兩個或多個數組的值鏈接為新數組‘   【註】 concat 連接時,如果有二維數組,至多拆一層;eg.       [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]]
  ③ arr.push(值) :數組最後增加一個;     arr.unshift(值): 數組開頭增加一個 —— 返回新數組的長度;     arr.pop():數組最後刪除一個;     arr.shift(): 數組開頭刪除一個 —— 返回被刪除的值;   【上述方法 都會改變原數組】   ④ reverse():原數組被改變。將數組翻轉,倒序輸出。   ⑤ arr.slice(begin,end):原數組不會被改變。截取數組中的某一部分,並返回截取的新數組。     傳入一個參數,表示開始區間,默認截取到數組最後;     傳入兩個參數,表示開始和結束的下標,左閉右開(包含begin, 不包含end)     兩個參數可以為負數,表示從右邊開始數,最後一個值為-1   ⑥ sort():原數組被改變 ,將數組進行升序排列。     1) 默認情況下,會按照每個元素首字母的ASCII碼值進行排序;[3,1,5,12].sort(); -> [1,12,3,5]     2) 可以傳入一個比較函數,手動指定排序的函數算法;函數默認接收兩個值a,b 如果返回值>0,則證明a>b       arr.sort(function(a,b){         return b-a; //降序排列         return a-b; //升序排列       });   ⑦ IndexOf(value,index):返回數組中第一個value值所在的下標,如果沒有找到返回-1;     lastIndexOf(value,index):一個value存在多個的情況下,返回數組中最後一個value值所在的下標,如果沒有找到返回-1;     如果沒有指定 index,則表示在整個數組中查找 value     如果指定了index,則表示從index開始,向後查找value   ⑧ forEach():專門用於循環遍歷數組。接收一個回調函數,回調函數可以接收兩個參數,     第一個參數為數組每一項的值,第二個參數為數組的下標。【IE8之前不支持】     arr.forEach(function(item,index){         console.log(item);     });   ⑨ map():數組映射。使用方式與forEach()相同。與forEach()不同的是,map可以有return返回值,表示將原數組的每個值進行操作,返回一個新數組     var arr0 = arr.map(function( item,index ){ //數組映射 返回一個新數組       console.log(item);       return item-1;     });   ⑩ .splice(no-1,1);插入、刪除、替換(第三個參數)數組中的元素。 5、二維數組與稀疏數組(了解)   ① 二維數組:數組中的值依然是一個數組形式 。     eg. arr var a = [[1,2,3],[3,4,5]]; //兩行三列     讀取二維數組:a[行號][列號]   ② 稀疏數組:數組中的索引是不連續的。(length要比數組中實際的元素個數大) 基本數據類型&引用數據類型   ① 基本數據類型:賦值時,是將元變量中的值,賦值給另一個變量。賦值完成後,兩個變量相互獨立,修改其中一個值,另一個不會變化。   ② 引用數據類型:賦值時,是將原變量在內存中的地址,賦值給另一個變量。賦值完成後,兩個變量中存儲的是同一個內存地址,訪問的是同一份數據,修改其中一個值,另一個也會改變。   ③ 數值型、字符串型、布爾型等變量屬於基本數據類型; 數組、對象屬於引用數據類型。 其他內置對象 1、boolean 類   兩種聲明方式:可以使用字面量方式聲明一個單純的變量;   也可以使用 new Boolean() 聲明一個boolean類型的對象。用typeof檢測為object類型。 2、number 類   常用方法:     MAX_VALUE:返回number類可表示的最大值;     MIN_VALUE:返回number類可表示的最小值;     .toString():將數值類型轉換為字符串類型。(常用)     .toLocaleString():將數值按照本地格式順序轉換為字符串,     一般從右開始,三個一組加逗號分隔     .toFixed(n):將數字保留n位小數,並轉化為字符串格式。(常用)     .toPrecision():將數字格式化為指定長度。n - 不含小數點的位數長度;如果n小於原數字長度,則用科學計數法表示。如果n大於原數字長度,則小數點後補0;     .valueOf():返回number對象的基本數字值。 3、string 類   1) 屬性:str.length 返回字符串的長度即字符數;       字符串支持類似於數組的下標訪問機制:str[0]   2) .toLocaleLowerCase();將字符串所有字符轉成小寫    .toLocaleUpperCase();將字符串所有字符轉成大寫   3) .charAt(n); 截取數組的第n個字符,相當於str[n] (常用)   4) .indexOf("str",index); 從index位置開始,查找字串在字符串中出現的位置,     如果沒有找到返回-1,其他同數組的indexOf方法    .lastIndexOf("str",index); 同數組   5) .substring(begin,end); 從字符串中截取子串     只傳入一個參數:表示從begin開始到最後     傳入兩個參數,表示從begin到end的區間,左閉右開。   6) .split():將字符串以指定分隔符分隔。存入數組中。        傳入空"" 表示將字符串的每個字符分開存入數組中。   7) .replace("old","new"); 將字符串的第一個old替換為new。     第一個參數,可以是 普通字符串,也可以是 正則表達式。     如果是普通字符串,則只替換第一個old;如果是正則表達式,可以根據正則的寫法要求,進行替換 3、date 日期類 對象   1) new Date() :返回當前最新時間。     new Date("2017,12,31,12:34:12"); 返回指定時間。   2) 常用方法:     ① .getFullYear():獲取年份。     ② .getMonth():獲取月份。     ③ .getDate(); 獲取一個月中的第幾天     ④ .getDay(); 獲取一個周中的第幾天 0-表示周天 自定義對象 1、基本概念   ① 對象:擁有一系列無序屬性和方法的集合。   ② 鍵值對:對象中的數據,用以鍵值對的形式存在。對象的每個屬性和方法,都對應值的一個鍵名,以鍵取值。   ③ 屬性:【對象中的變量】;描繪對象特征的一系列變量;   ④ 方法:【對象中的函數】;描述對象行為的一系列函數。 2、對象的聲明   ① 使用字面量聲明:   【註】 對象中的數據是以鍵值對形式存儲,鍵與值之間用:分隔。多個鍵值對之間用,分隔       對象中的鍵 可以是除了數組/對象以外的其他任何數據類型,但是我們一般使用普通變量名       對象中的值 可以是任何數據類型,包括數組和對象。     var obj = {        key1 : value1,        key2 : value2,        func1 : function(){}     }   ② 使用new關鍵字聲明:     var obj = new Object();     obj.key1 : value1;     obj.key2: value2;     obj.func1 : function(){} 3、對象中屬性和方法的讀寫   ① .運算符:     對象內部:this.屬性 this.方法();     對象外部:對象名.屬性 對象名.方法();   ② ["key"]調用:對象名["屬性名"] 對象名["方法名"]();     【註】 如果鍵中包含特殊字符,則只能用第②種方式。     對象中 直接寫變量名,默認為調用全局變量。如果需要調用對象自身的屬性或者方法,需要使用對象名.屬性,或者this.屬性。     this.age person.age 推薦使用this關鍵字。 4、刪除對象的屬性和方法   delete 對象名.屬性名/方法名;   eg. delete person.age; 謝謝閱讀,請多指教,共勉。

JS中的內置對象