摘要:日常開發過程中,發現自己對很多原生方法都不知道,有些早已實現的方法,卻傻乎乎自己去實現,因此萌生了總結和練習內置對象方法的想法。
日常開發過程中,發現自己對很多原生方法都不知道,有些早已實現的方法,卻傻乎乎自己去實現,因此萌生了總結和練習JS內置對象方法的想法。
以下內容可能并不有趣,請謹慎觀看?,參考自MDN
Array.length
這個大家都再熟悉不過啦,表示數組長度~
Array.prototype
數組對象的原型~
Array.prototype.copyWithin(target,start,end)
該方法解釋起來似乎不太好描述,簡單來說,copyWithin用于把從目標數組Array拷貝一部分出來,并把這一 部分放入target指向的位置(target,start,end都為整數),而且不會改變數組長度!??!也就是說,如果拷貝的那部分放入新數組時,如果長度超出原數組長度,那么多余長度的那部分會被忽略,不會繼續加入到新數組中。
示例代碼:
代碼中有一段注釋,也是比較關鍵的一點,該函數做的操作是把拷貝出來的數據替換掉target所指位置的原來的元素,注意,是替換,原來target所在位置的元素在新數組中不再存在??!
Array.prototype.concat()
該方法用于連接多個數組或者非數組值,并且返回一個新數組。
具體看示例:
該方法的參數有一點需要解釋,傳入的多個參數中,如果是數組類型,則將它的元素復制一份并push到新數組中,若是其他類型,則直接當作元素push到新數組中。重點:concat的運算過程是重新復制一份內容傳入新數組,因此新數組和舊數組的內存地址是不同的,對新數組做的改變并不會影響到原來的數組,但是!注意這個但是!我說三遍但是!這條原則是基于所有數組元素都是基本類型,如果說某一個元素是引用類型,那么concat所復制的也只不過是這個引用類型的一個引用,指向的是同一個內存地址!總結:新數組的內存地址和舊數組不一樣,但是新數組內引用類型元素和舊數組內相對的那個引用類型元素是指向同一內存地址!,PS:最后,假如你的參數和舊數組都不含有引用類型,你可以使用concat來進行數組深度拷貝~
Array.of(element0[, element1[, ...[, elementN]]])
該方法用于創建一個新的Array實例,傳入的參數將依次成為新數組的元素。該方法和數組的構造函數區別在于,Array(5)返回[,,,,],而Array.of(5)返回[5]請看示例代碼:
Array.isArray(obj)
不多說了,判斷輸入的參數obj是否是數組類型,如果是,返回true,否則返回
false
Array.from(arrayLike[, mapFn[, thisArg]])
該方法為ES2015新增的方法,返回一個新的數組對象,其參數有三個:
第一個參數
為數組類型或者類數組類型的對象,是必選參數,`arraylike`,顧名思義,要與數組結構類似。一般來說,有以下幾種情況:一個滿足以`數字為鍵,并且擁有length屬性的對象`,es6新增的數據結構`set` 和 `map`,當然別忘了`字符串對象`~,它當然也是`arraylike`~
第二個參數
可選參數,一旦你指定了該參數,你的數據會經過該函數處理后再返回
第三個參數
可選參數,指定from方法運行時的this環境
上代碼~~
細心的你,可能還發現,新的數組去重了呢?!是咋回事呢?這和Array.from 可沒有關系噢,請移步 ES6 Set數據結構~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81765.html
摘要:語法添加刪除項目的位置要刪除的項目數量要添加的第一個元素第二個第三個返回值被刪除的項目,如果有的話其中,第二個參數如果設置為,則不會刪除任何項目。 第一篇篇幅太長了,自己回顧都覺得有點傷神。。以后盡量多篇少字~ 首先簡單介紹Array數組對象 什么是數組: 用單獨的變量名存儲一系列的值 如何創建數組:(有3種方法) 1、常規方式: var gyt=new Array(); gyt[0...
摘要:注每個內置對象都是原生對象,一個內置的構造函數是一個內置的對象,也是一個構造函數。從對象返回月份。以毫秒設置對象。刪除數組的第一個元素,返回值是刪除的元素。對象屬性創建該正則對象的構造函數。對象當以非構造函數形式被調用時,等同于。 內置對象與原生對象 內置(Build-in)對象與原生(Naitve)對象的區別在于:前者總是在引擎初始化階段就被創建好的對象,是后者的一個子集;而后者包括...
摘要:前言大家好,小弟飛狐,愛學習,愛裝逼,樂于分享,初來乍到,請多多關照。特別注意一下,函數在中是對象,不是一種數據類型,這可是世界的一等公民。和,和的關系又很曖昧,后面細說,要不然會暈菜。基本數據類型,,,,,這五種基本數據類型是按值訪問的。 前言 大家好,小弟飛狐,愛學習,愛裝逼,樂于分享,初來乍到,請多多關照(~ o ~)~zZ。出道幾年,對JavaScript情有獨鐘,聊技術之前,...
摘要:對象創建字面量方式構造函數方式也可以這樣不過這樣的話,為何不選擇字面量方式字面量方式和方式的寫法是等價的,返回的結果是同種類的對象。構造函數產生實例時,實例通過其對應原型對象的訪問對應的構造函數對象。 前端學習:教程&模塊化/規范化/工程化/優化&工具/調試&值得關注的博客/Git&面試資源匯總 歡迎提issues斧正:對象&對象使用 Object對象 在 JavaScript 中,對...
摘要:他指示了一個對象的屬性,返回的將用來獲得該屬性對應的值在上面的分析中,我們知道,當傳入的是一個函數時,還要經過一個叫的內置函數才能獲得最終的所以此處的必然是優化回調的作用了。 開篇說明 對的,讓你所見,又開始造輪子了。哈哈,造輪子我們是認真的~ 源碼閱讀是必須的,Underscore是因為剛剛學習整理了一波函數式編程,加上自己曾經沒有太多閱讀源碼的經驗,先拿Underscore練練手,...
閱讀 2889·2021-11-17 09:33
閱讀 3662·2021-11-16 11:42
閱讀 3488·2021-10-26 09:50
閱讀 1318·2021-09-22 15:49
閱讀 3046·2021-08-10 09:44
閱讀 3670·2019-08-29 18:36
閱讀 3925·2019-08-29 16:43
閱讀 2208·2019-08-29 14:10