摘要:數組有以下特點無類型數組元素可以是任意元素。因此,當小于數組最大索引時,大于的數組元素會被刪除。原數組不會改變將數組元素轉換為字符串并連接在一起。默認將數組元素用,連接,傳入的參數即為連接符。
1. 數組
數組是值的有序集合,每個值被稱為元素。
數組有以下特點:
無類型:數組元素可以是任意元素。
動態性:數組的長度是動態的,可隨時增加和縮減。無需在創建時為其聲明固定大小也無需在長度變化時重新分配空間。
數組是特殊的對象,并且經過優化,用索引訪問數組比訪問常規的對象屬性快。
數組繼承自Array.prototype的屬性和方法
2. 數組的操作 2.1 創建數組有兩種方式創建數組。 1. 通過數組直接量:`[]`.[,,]這樣是2個元素,并且數組元素的值為undefined. 2. 使用構造函數`new Array()`.不傳入參數時創建空數組,一個數字參數為數組的長度,2個以上參數則每個參數為創建的數組的元素。2.2 讀寫數組
使用方括號的語法可以讀或者寫數組元素。方括號內的內容是返回非負整數值的任意表達式。如果內容是負數或非整數,則會將其轉換為字符串,就作為常規的對象屬性來訪問。如果使用了非負整數的字符串,就作為數組的索引訪問。2.3 數組長度
每個數組都有一個`length`屬性,代表數組中元素的個數。**length屬性一定大于數組索引的最大值**。因此,當length小于數組最大索引時,大于length的數組元素會被刪除。2.4 添加和刪除數組元素
添加元素:(1)給數組的新索引賦值;(2)使用數組方法:push(),unshift(),splice() 刪除元素:(1)使用delete運算符,數組長度并不會改變,訪問該位置時返回undefined;(2)使用數組方法:pop(),shift(),splice()2.5 數組遍歷
(1)使用for循環遍歷數組。 (2)使用數組方法遍歷:forEach(),map() - 跳過null,undefiend,不存在的元素:if(!a[i]) continue; - 跳過值為undefiend和不存在的元素: if(a[i]===undefiend) continue; - 跳過不存在元素但仍然要處理值為undefined的元素:if(!(i in a)) continue;2.6 檢測數組
使用`Array.isArray()`傳入要檢測的數組,若為數組則返回true.3. 數組方法
將數組的方法分為:(1)原數組會改變;(2)原數組不會改變。從方法的作用和返回值來講述。3.1 原數組會改變
- `reverse()`:將元素倒序排列。返回逆序后的原數組。 - `sort([func])`:對元素進行排序。當不傳遞參數時,將元素轉為字符串并按**字母表**順序排序。傳遞參數比較函數時,若第一個函數參數在前則返回小于0,等于返回0,在后則返回大于0。返回排序后的原數組。 - `splice()`:添加或者刪除元素。第一個參數為操作開始的索引,第二個參數為要刪除的元素的個數,第三個參數為要加入數組的元素。若不傳入第三個參數則為刪除數組,若第二個參數為0則為添加元素。會直接在原數組上進行修改。返回由刪除元素組成的**數組**,若未刪除則返回空數組。 - `push()`:在數組的末尾添加一個新元素,相當于給a[a.length]賦值。返回數組的新長度。 - `pop()`:從數組的末尾刪除一個元素。返回被刪除的元素。 - `unshift()`:從數組的開頭添加一個新元素。返回數組的新長度。 - `shift()`:從數組的開頭刪除一個新元素。返回被刪除的元素。3.2 原數組不會改變
- `join()`:將數組元素轉換為字符串并連接在一起。默認將數組元素用“,”連接,傳入的參數即為連接符。返回連接的字符串。 - `concat()` :不傳入參數的時候就是復制調用的數組,傳入參數則將傳入的加入到復制的數組的后面。返回新數組。 - `slice()`:獲取相應位置之間的子數組。第一個參數是開始的位置,第二個參數是結束的位置但不會獲取該位置的元素,若無第二個參數則為數組末尾。返回獲取的子數組。 - `reduce(),reduceRight()`:該方法的callback函數的參數為previousValue,currentvalue,index,array。第二個參數為初始值。callback作為累加器(accumulator),數組中的每個值(從左到右)開始合并,最終為一個值。回調函數第一次執行時,previousValue 和 currentValue 可以是一個值,如果 initialValue 在調用 reduce 時被提供,那么第一個 previousValue 等于 initialValue ,并且currentValue 等于數組中的第一個值;如果initialValue 未被提供,那么previousValue 等于數組中的第一個值,currentValue等于數組中的第二個值。可用于數組扁平化和對數組求和等。reduceRight()則從從右向左合并。返回最后一次執行callback之后的值。 - `indexOf(),lastIndexOf()`:返回給定元素能找在數組中找到的第一個索引值,否則返回-1。第一個參數為要查找的元素,第二個參數為查找開始的位置。lastIndexOf從后向前找。 以下四種方法第一個參數為函數(callback),對數組的每一個元素調用一次該函數,會跳過delete刪除的元素和從未被賦值的元素。該函數一般有三個參數:當前元素,元素索引以及數組。第二個參數可選,為第一個參數的this的值的對象,可以理解為callback.call(thisArg, element, index, array). 方法中遍歷的范圍在第一次調用 callback 前就會確定。調用后添加到數組中的項不會被 callback 訪問到。如果已經存在的值被改變,則傳遞給 callback 的值是方法遍歷到他們那一刻的值。已刪除的項不會被遍歷到。 - `forEach()`:從頭至尾遍歷數組,對每個元素調用指定的函數。沒有辦法中止或者跳出 forEach 循環,除了拋出一個異常。返回undefiend. - `map()`:返回由原數組中的每個元素調用指定方法后的返回值組成的新數組。 - `filter()`:使用指定的函數測試所有元素。返回包含所有通過測試的元素的新數組。 - `every(),some()`:測試數組的所有元素是否都通過了指定函數的測試。如果全部元素都返回true則every()會返回true。如果有一個元素返回true,則some()返回true.這兩種方法都執行**“短路操作”**,即對于every()來說,只要檢測到某一個元素返回false,則直接返回false,不會再遍歷以后的元素。對于some()來說,如果有一個返回true,則直接返回true4. 數組的類別
- 稀疏數組:數組中至少有一個元素未被賦值。當用in操作符(index in array)檢查索引是否存在于數組時,返回false.若元素被賦值為undefined時,in操作符也會返回true. - 多維數組:使用兩次[]操作符訪問數組中的數組。 - 類數組:具有(1)數值length屬性;(2)非負整數屬性的對象可以看做是類數組。由于這些類數組并不是繼承自Array.prototype,所以不能使用數組方法,但是可以通過Function.call()方法調用。字符串可以看做是一種類數組。但是由于字符串是不可變的,只讀,因此會對原數組做出改變的方法不能在字符串上調用。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79836.html
摘要:若有函數名,則在函數體內指代該函數本身,并且只存在于函數體中。返回值與普通函數相同。如果嵌套函數作為普通函數調用,則指向全局對象或者構造函數調用在函數或者方法調用之前使用關鍵字,則為構造函數調用。創建一個新的對象繼承構造函數的屬性。 showImg(https://box.worktile.com/view/ddbade8c84bb41cdb20db15228584b8e?pid=4b...
摘要:對象是屬性的無序集合。使用對象直接量創建的對象的原型就是,使用運算符創建的對象的原型是構造函數的的值。主要目的是將對象鎖定,避免外界干擾。判斷對象是否封閉。刪除屬性可刪除對象的自有屬性且為的屬性。 對象是屬性的無序集合。因此,這一章主要從對象和屬性兩個方面來闡述。showImg(https://box.worktile.com/view/c8f5f376fe314aeca69d9b4c...
摘要:如果在初學一門語言的時候第一想到的是問別人,是很難取得進步的。如果你真想學好,我有個大概的自學軌跡供你們參考。第一步,學習的編程。立即可以嘗試的實例,也可以讓的初學者馬上看到效果。讀懂別人的代碼是學習,而改進別人的代碼則是創造了。 javascript入門太容易了,導致幾乎人人隨便看看就能上手,零基礎的人學個三五天都能對外宣稱自己掌握了js。可是真正掌握js是一件很難的事情。如果在初學...
摘要:設計目的是為了讓在全局范圍內有效。在正則表達式后部引用前面的子表達式。傳入分隔符或正則表達式。對象屬性以下屬性返回布爾值。是否包含修飾符以下不返回布爾值整個字符串下一次搜索開始的位置。返回布爾值,若匹配則返回。 1. 正則表達式語法 1.1 表示方法 - `//`字面量模式,`/表達式/修飾符` - 使用`new RegExp(字符串,修飾符 | 正則表達式)`構造函數。 在ES5中,...
摘要:緣起這是語言程序設計的,計劃之前全部整理完。產生隨機數的方法。復習題雙分支語句復習題嵌套的語句和多分支語句復習題常見錯誤和陷阱常見錯誤兩個浮點數值的相等測試復習題產生隨機數產生一個到之間的隨機值,不包括。 緣起 這是《Java語言程序設計(10th)》的Part1,計劃2017-12-31之前全部整理完。 2017-12-23開始想看這本書的,并同時開始實踐起Java來的。 Part...
閱讀 3230·2023-04-26 02:27
閱讀 2146·2021-11-22 14:44
閱讀 4108·2021-10-22 09:54
閱讀 3205·2021-10-14 09:43
閱讀 759·2021-09-23 11:53
閱讀 12755·2021-09-22 15:33
閱讀 2715·2019-08-30 15:54
閱讀 2692·2019-08-30 14:04