摘要:將指定的數(shù)字索引值轉(zhuǎn)換成字符串索引值變成,然后將其作為屬性名來用。返回一個由刪除元素組成的數(shù)組。該方法返回的數(shù)組元素是調(diào)用的數(shù)組的一個子集。使用的函數(shù)有四個參數(shù)初始值積累值數(shù)組元素元素索引數(shù)組本身。
前言
很多人在學(xué)習(xí)原生JS的過程中會遇到一些疑惑,比如在學(xué)習(xí)array時,就很容易搞不清哪些方法會改變原來數(shù)組,哪些方法不會改變原來數(shù)組?再比如很多人會使用new Date()獲取時間,卻搞不清楚1970年是什么鬼。這篇文章就是針對諸如此類問題的總結(jié)。如果你有這方面的疑惑,千萬不要錯過這篇文章哦~
正文 一:數(shù)組1.JS 數(shù)組特點(重點知識)
(1)數(shù)組元素可以是任意類型的,并且同一個數(shù)組的不同元素也可能是不同的類型
(2)數(shù)組是動態(tài)的:根據(jù)需要它們會增長或者縮減,并且在創(chuàng)建時無需聲明一個固定大小或者在數(shù)組大小變化時無需重新分配空間
(3)數(shù)組元素的索引不一定要連續(xù)的,它們之間可以有空缺。如果省略數(shù)組直接量中的某個值,省略的元素在數(shù)組中是存在的,省略的元素將被賦予undefined值
(4)JS數(shù)組就是JS對象的特殊形式,數(shù)組索引實際上和碰巧是整數(shù)的屬性名差不多。JS將指定的數(shù)字索引值轉(zhuǎn)換成字符串——索引值1變成“1”,然后將其作為屬性名來用。所有的數(shù)組都是對象,可以為其創(chuàng)建任意名字的屬性。但是如果使用的屬性是數(shù)組的索引,數(shù)組的特殊行為就是根據(jù)需要更新它們的length屬性值。
注意事項:
1)區(qū)分?jǐn)?shù)組的索引和對象的屬性名
所有的索引都是屬性名,但只有0——2^32-2的整數(shù)屬性名才是索引。
2)稀疏數(shù)組
稀疏數(shù)組就是包含從0開始的不連續(xù)索引的數(shù)組。如果數(shù)組是稀疏的,length屬性值大于元素的個數(shù)。
3)數(shù)組長度
如果為一個數(shù)組元素賦值,它的索引i大于或者等于現(xiàn)有數(shù)組的長度時,length的屬性將設(shè)置為i+1
設(shè)置length屬性為一個小于當(dāng)前長度的非負(fù)整數(shù)n時,當(dāng)前數(shù)組中那些索引值大于或等于n的元素將從中刪除
4)delete
delete可以用來刪除一個數(shù)組元素,這類似于隱式給數(shù)組元素賦值undefined,不會修改數(shù)組的length屬性
2.數(shù)組方法
不改變原數(shù)組:join(有返回)concat(有返回) sort(有返回) toString(有返回)
改變原數(shù)組的:reverse sort(有返回) splice(有返回)pop push shift unshift
(1)join
將數(shù)組中的所有元素轉(zhuǎn)化為字符串并連接在一起,返回最后生成的字符串。
(2)reverse
將數(shù)組中的元素顛倒順序,返回逆序數(shù)組。它不通過重新排列的元素來創(chuàng)建新的數(shù)組,而是在原來的數(shù)組中重新排列了它們。
(3)sort
將數(shù)組中的元素排序后并返回排序后的數(shù)組。如果數(shù)組中包含undefined,它們會被排到數(shù)組的尾部。
(4)concat
創(chuàng)建并返回一個新數(shù)組,它的元素包含調(diào)用concat()的原來數(shù)組的元素和concat()的每個參數(shù)。
(5)slice
該方法返回指定數(shù)組的一個片段或子數(shù)組。
(6)splice
在數(shù)組中插入或者刪除元素的通用方法。splice()會修改調(diào)用的數(shù)組。splice()返回一個由刪除元素組成的數(shù)組。
(7)push() pop() shift() unshift()都會改變數(shù)組
(8)toString() toLocalString()
toString()方法將每個元素轉(zhuǎn)換為字符串,并且輸出用逗號分隔的字符串列表。注意輸出不包括方括號或其他形式的包裹數(shù)組值的分隔符
3.ECMAScript中新的數(shù)組方法
改變原來數(shù)組的只有:forEach(無返回)
(1)forEach
該方法從頭到尾遍歷數(shù)組,為每個元素調(diào)用指定的函數(shù)。
(2)map
該方法將調(diào)用的數(shù)組的每個元素傳遞給指定的函數(shù),并且返回一個數(shù)組,它包含該函數(shù)的返回值。map返回的是新數(shù)組:它不修改調(diào)用的數(shù)組。
(3)filter
該方法返回的數(shù)組元素是調(diào)用的數(shù)組的一個子集。傳遞的函數(shù)是來邏輯判斷的:該函數(shù)返回true或false。如果返回值為true或者能夠轉(zhuǎn)換為true的值,它將被加到一個作為返回值的數(shù)組中。
(4)every和some
every方法當(dāng)且僅當(dāng)針對數(shù)組中的所有元素調(diào)用判定函數(shù)都返回true時,才返回true.
some方法當(dāng)數(shù)組中至少有一個元素調(diào)用判定函數(shù)返回true,它就返回true.并且當(dāng)且僅當(dāng)數(shù)值中的所有元素調(diào)用判定函數(shù)都返回false,它才返回false
(5)reduce和reduceRight
reduce和reduceRight方法使用指定的函數(shù)將數(shù)組元素進(jìn)行組合,生成單個值。reduce需要兩個參數(shù):一個是執(zhí)行簡化的函數(shù),另一個是傳遞給函數(shù)的初始值。reduce使用的函數(shù)有四個參數(shù):初始值/積累值、數(shù)組元素、元素索引、數(shù)組本身。
(6)indexOf()和lastIndexOf()
indexOf()和lastIndexOf()搜索整個數(shù)組中具有給定值的元素,返回找到的第一個元素的索引或者如果沒有找到就返回-1.indexOf從頭至尾搜索,而lastIndexOf則反向搜索。
總結(jié):
能改變原來數(shù)組的有:
sort() reverse() splice() forEach() pop push shift unshift
附:關(guān)于數(shù)組與類數(shù)組的區(qū)別,請參考這里:JS類數(shù)組
二:Date詳情參考:https://segmentfault.com/a/11...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86837.html
摘要:如果你想讓一個數(shù)組元素的值變?yōu)槎皇莿h除它,可以使用給其賦值而不是使用操作符。此時數(shù)組元素是在數(shù)組中的操作符與直接釋放內(nèi)存只能通過解除引用來間接釋放沒有關(guān)系。 delete 操作符用來刪除一個對象的屬性 語法EDIT delete expression expression 應(yīng)該是一個對象的屬性引用,例如: delete object.property delete object[p...
摘要:閉包能用來實現(xiàn)私有化和創(chuàng)建工廠函數(shù)等作用。關(guān)于閉包的常見面試題是這樣的寫一個函數(shù),循環(huán)一個整數(shù)數(shù)組,延遲秒打印這個數(shù)組中每個元素的索引。 文章來源:http://mp.weixin.qq.com/s/vs0... 前言 在公眾號上看到了這篇文章,覺得很有用,有助于理解JS學(xué)習(xí)中的一些重點難點。決定把它整理下發(fā)布出來。該文章主要介紹了JS中的三個問題。在以后的幾篇文章里,我會詳細(xì)介紹這三...
摘要:反之亦然非嚴(yán)格合并嚴(yán)格看起來是非嚴(yán)格的。在普通的里面給一個拼寫錯誤的變量名賦值會使全局對象新增一個屬性并繼續(xù)工作盡管后面可能出錯在現(xiàn)在的中有可能。第三嚴(yán)格模式禁止刪除聲明變量。 文章整理自MSDN:https://developer.mozilla.org... 1.逐步使用嚴(yán)格模式 ECMAScript 5的嚴(yán)格模式是JavaScript中的一種限制性更強(qiáng)的變種方式。嚴(yán)格模式不是一個...
摘要:一些知識點有哪些方法方法前端從入門菜鳥到實踐老司機(jī)所需要的資料與指南合集前端掘金前端從入門菜鳥到實踐老司機(jī)所需要的資料與指南合集歸屬于筆者的前端入門與最佳實踐。 工欲善其事必先利其器-前端實習(xí)簡歷篇 - 掘金 有幸認(rèn)識很多在大廠工作的學(xué)長,在春招正式開始前為我提供很多內(nèi)部推薦的機(jī)會,非常感謝他們對我的幫助。現(xiàn)在就要去北京了,對第一份正式的實習(xí)工作也充滿期待,也希望把自己遇到的一些問題和...
摘要:加入維權(quán)騎士團(tuán)隊,擔(dān)任技術(shù)負(fù)責(zé)人,俗稱。三創(chuàng)業(yè)榜單年月,在維權(quán)騎士正好呆滿一整年。因為自己的一些考慮,我選擇出來創(chuàng)業(yè),創(chuàng)業(yè)的項目叫榜單。年開發(fā)管理經(jīng)驗,龍泉寺信息技術(shù)組義工,前維權(quán)騎士技術(shù)負(fù)責(zé)人。持續(xù)創(chuàng)業(yè)者,目前在做榜單創(chuàng)業(yè) 一、當(dāng)CTO 2016年3月,我離開北京華夏基金,來到杭州。加入維權(quán)騎士團(tuán)隊,擔(dān)任技術(shù)負(fù)責(zé)人,俗稱CTO。 誠惶誠恐,最開始的時候很害怕別人稱呼自己CTO。...
閱讀 2114·2021-11-11 16:55
閱讀 3183·2021-10-11 10:58
閱讀 3061·2021-09-13 10:28
閱讀 3997·2021-07-26 23:57
閱讀 1044·2019-08-30 15:56
閱讀 1341·2019-08-29 13:15
閱讀 1278·2019-08-26 18:18
閱讀 1284·2019-08-26 13:44