Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲一区二区三区免费视频,欧美成人午夜视频免看,亚洲黄色小视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          京東們疑似下架無限極;小米回應下線路由器“自動重啟”

          京東們疑似下架無限極;小米回應下線路由器“自動重啟”功能:發版節奏沒把握好

          上好。

          昨天有沒有看到超級月亮?(并沒有)。如果已經錯過了月亮,就不要再錯過今天的虎嗅早報了!

          先看看繼權健之后被查的無限極有沒有什么最新的情況:

          京東蘇寧等已下架無限極產品?

          @IT之家【京東蘇寧等電商平臺下架無限極產品】在權健帝國崩塌之后,無限極在近些日子也因虛假營銷陷入了輿論風波。目前京東、蘇寧、唯品會等電商品臺疑似均已經下架了“無限極”產品,在這些電商網站搜索“無限極”之后,均顯示未找到相關產品。

          下線路由器小米“自動重啟”功能,小米咋回應的

          @快科技【小米路由器下線“自動重啟”功能,官方回應】近日,小米路由器下線了“自動重啟”功能,被不少用戶吐槽。1月21日晚上,小米路由器在官微進行了回應。

          據產品總監辯解說,因為正在計劃迭代一個比“自動重啟”更好的“路由自動優化”功能,但發版節奏沒有把握好,新的沒來反倒舊的先下線了。小米路由器表示,老板已經把技術總監的年終獎取消了。同時,為了用行動向用戶表達求生欲,整個團隊正全速加班研發新版本。

          一點資訊CEO被免除職務

          @新浪科技【一點資訊CEO李亞被免除職務 任旭陽接任CEO】一點資訊昨天晚間發布內部信稱,一點資訊CEO李亞被免除職務,任旭陽接任CEO一職。一點資訊表示,做出此次人事調整出于公司發展需要。

          李亞2006年6月加入鳳凰網任首席運營官COO, 并兼任首席財務官CFO直至2010年11月。2015年任一點資訊CEO兼鳳凰網總裁。任旭陽是一點資訊的聯合創始人。2011年底,前雅虎中國區研究院院長鄭朝暉和原百度副總裁任旭陽一起創辦一點資訊,先后獲得小米、鳳凰、和OPPO的戰略投資。2015年初,經過此前三輪投資后,鳳凰網成為一點資訊第一大股東。

          李亞

          另一則人事變動:

          搜房網新動向

          @騰訊科技【搜房網總裁劉堅晉升為CEO,或分拆CIH上市】據外媒報道,搜房網(SFUN)宣布調整其高級管理層,并擬分拆旗下全資子公司CIH。搜房網總裁劉堅(Jian Liu)已被任命為首席執行官,接替莫天全(Tianquan Mo),自即日起生效。莫天全將繼續擔任搜房網董事長。

          搜房網副首席財務官李子衿(Zijin Li)已被任命為代理首席財務官兼董事會秘書,接替雷華(Hua Lei),自即日起生效。雷博士將擔任搜房網的首席投資官。搜房網目前正考慮分拆CIH公司,以探索不同的選擇方案,包括將CIH的普通股分配給搜房網的股東,或者私下出售CIH的普通股,或者讓CIH在美國、中國或全球其他主要證券交易所上市。

          微信新一年辟謠收獲

          @快科技【微信公布2018年辟謠成果:老年人受毒害最深】昨天,騰訊發布了2018年騰訊網絡謠言治理成果和謠言榜單,并對典型謠言案例和中老年人易感謠言特征進行了分析和總結。微信公眾平臺方面,截至2018年底與包括網信、公安、食藥監等政府機關、媒體等共計774家權威機構形成辟謠合作,共生產3994篇辟謠文章,累計總閱讀數超過10.96億次,閱讀人數達2.95億人次。

          中老年人傳謠的主要原因:謠言鑒別能力差、受教育程度低、主觀幸福感低。相比于城鎮中老年人,農村的中老年群體更有可能傳播謠言。

          周鴻祎:人工智能還存在冰點

          @新浪科技【周鴻祎:當下AI技術并不完善 存四大“冰點”】中國人工智能學會“人工智能與安全專委會”昨日在京成立,360集團董事長兼CEO周鴻祎當選首任專委會主任。他表示,智能音箱變身竊聽器并不是科幻電影里的場景。

          周鴻祎還指出,當下的人工智能技術并不完善,存在四大冰點:前端傳感器可以被干擾;人工智能的數據樣本可以被污染;內部算法可以被欺騙;實現平臺有漏洞。

          國外科技圈并不平靜:

          谷歌又被罰款了

          @PingWest品玩【法國數據監管機構將對Google處以5000萬歐元的罰款】據thelocal報道,法國數據監管機構周一宣布,將對Google處以5000萬歐元(合5700萬美元)的罰款,這是該機構首次使用歐盟嚴格的一般數據保護規定。

          一份聲明稱,Google因未能就其數據同意政策提供透明且易于獲取的信息而被法國國家數據保護委員處以創紀錄的罰款。法國國家數據保護委員表示,Google讓用戶難以理解和管理他們的個人信息使用偏好,尤其是在定向廣告方面。

          三星的國際之路一樣不太順

          @鳳凰網科技【受印度政府關稅影響,三星或停止在當地生產旗艦手機】印度政府最近決定把要求手機廠商在本地生產顯示屏、觸摸模塊的時間由2019-2020年提前到2019年2月,否則將會被征收11%的進口關稅,這可能迫使三星削減在印度的手機產量,停產旗艦機型。

          印度政府的“印度制造”計劃,促使三星等廠商在印度生產更多產品,但是,它提前“分階段制造計劃”(以下簡稱“PMP”)的時間表,卻是不受這些廠商歡迎的。三星致函印度政府稱,它已經根據此前的PMP時間表在對印度進行投資,在2020年3月31日前在印度生產相關零部件。時間表的突然提前,意味著三星仍然需要進口零部件,并被征收進口關稅。

          當Facebook和Twitter遭遇戰斗民族

          @新浪科技【俄羅斯對Facebook和Twitter發起民事訴訟,違反數據法】俄羅斯通信監管機構“聯邦通信、信息技術與大眾傳媒監督局”(以下簡稱“Roscomnadzor”)今日宣布,已對Facebook和Twitter發起民事訴訟,原因是這兩家公司未能履行俄羅斯的數據保護法。

          Roskomnadzor周一表示,根據俄羅斯的法規,企業需要將俄羅斯用戶的個人數據存儲在俄羅斯境內的服務器上。但到目前為止,Facebook和Twitter這兩家社交網絡仍未說明它們將如何以及何時遵守該法規。

          最后,一起流浪:

          《流浪地球》終極預告出爐

          @3DM【《流浪地球》發終極預告 網友:國產片特效最棒的一部】根據劉慈欣同名小說改編的電影《流浪地球》今晚發布了終極預告,電影講述在不久的將來太陽急速老化,人類不得不開啟“流浪地球”計劃。影片將于大年初一上映。 據說特效驚人,那就一起去流浪吧~

          以上,開啟新的一天吧。

          *文章為作者獨立觀點,不代表虎嗅網立場

          本文由 Cuba Libre授權虎嗅網發表,并經虎嗅網編輯。轉載此文章須經作者同意,并請附上出處(虎嗅網)及本頁鏈接。原文鏈接:https://www.huxiu.com/article/282256.html

          未來面前,你我還都是孩子,還不去下載 虎嗅App 猛嗅創新!

          者最近在對原生JS的知識做系統梳理,因為我覺得JS作為前端工程師的根本技術,學再多遍都不為過。打算來做一個系列,一共分三次發,以一系列的問題為驅動,當然也會有追問和擴展,內容系統且完整,對初中級選手會有很好的提升,高級選手也會得到復習和鞏固。這是本系列的第二篇。

          掃了一眼目錄后,也許你可能會說:這些八百年都用不到的東西,我為什么要會?是,我承認真實業務場景中并不會要你手寫一個splice, 手寫深拷貝或者V8的數組排序,但我要說的是,問這些問題的初衷并不是讓你拿到平時去用的,而是檢驗你對 JS語言的理解有沒有到達那樣的水準,有一些 邊界情況是否能夠考慮到,有沒有基本的 計算機素養(比如最基本的排序方法到底理不理解),未來有沒有潛力去設計出更加優秀的產品或者框架。如果你僅僅是想通過一篇文章來解決業務中的臨時問題,那不好意思,請出門左拐,這篇文章確實不適合你。但如果你覺得自己的原生編程能力還有待提高,想讓自己的思維能力上一個臺階,希望我這篇"嘔心瀝血"整理了1w多字的文章能夠讓你有所成長。另外補充一句,本文并不針對面試,但以下任何一篇的內容放在面試中,都是非常驚艷的操作:)

          我自己是一名從事了多年開發的web前端老程序員,目前辭職在做自己的web前端私人定制課程,今年年初我花了一個月整理了一份最適合2019年學習的web前端學習干貨,各種框架都有整理,送給每一位前端小伙伴,想要獲取的可以關注我的頭條號并在后臺私信我:前端,即可免費獲取。

          第七篇: 函數的arguments為什么不是數組?如何轉化成數組?

          因為argument是一個對象,只不過它的屬性從0開始排,依次為0,1,2...最后還有callee和length屬性。我們也把這樣的對象稱為類數組。

          常見的類數組還有:


          • 用getElementByTagName/ClassName/Name()獲得的HTMLCollection

          • 用querySlector獲得的nodeList

          那這導致很多數組的方法就不能用了,必要時需要我們將它們轉換成數組,有哪些方法呢?

          1. Array.prototype.slice.call()

          2. Array.from()

          這種方法也可以用來轉換Set和Map哦!

          3. ES6展開運算符

          4. 利用concat+apply

          當然,最原始的方法就是再創建一個數組,用for循環把類數組的每個屬性值放在里面,過于簡單,就不浪費篇幅了。

          第七篇: forEach中return有效果嗎?如何中斷forEach循環?

          在forEach中用return不會返回,函數會繼續執行。

          中斷方法:

          1. 使用try監視代碼塊,在需要中斷的地方拋出異常。
          2. 官方推薦方法(替換方法):用every和some替代forEach函數。every在碰到return false的時候,中止循環。some在碰到return ture的時候,中止循環

          第八篇: JS判斷數組中是否包含某個值

          方法一:array.indexOf

          此方法判斷數組中是否存在某個值,如果存在,則返回數組元素的下標,否則返回-1。

          方法二:array.includes(searcElement[,fromIndex])

          此方法判斷數組中是否存在某個值,如果存在返回true,否則返回false

          方法三:array.find(callback[,thisArg])

          返回數組中滿足條件的第一個元素的值,如果沒有,返回undefined

          方法四:array.findeIndex(callback[,thisArg])

          返回數組中滿足條件的第一個元素的下標,如果沒有找到,返回 -1]

          當然,for循環當然是沒有問題的,這里討論的是數組方法,就不再展開了。

          第九篇: JS中flat---數組扁平化

          對于前端項目開發過程中,偶爾會出現層疊數據結構的數組,我們需要將多層級數組轉化為一級數組(即提取嵌套數組元素最終合并為一個數組),使其內容合并且展開。那么該如何去實現呢?

          需求:多維數組=>一維數組

          1. 調用ES6中的flat方法

          2. replace + split

          3. replace + JSON.parse

          4. 普通遞歸

          5. 利用reduce函數迭代

          6:擴展運算符

          這是一個比較實用而且很容易被問到的問題,歡迎大家交流補充。

          第十篇: JS數組的高階函數——基礎篇

          1.什么是高階函數

          概念非常簡單,如下:

          一個函數就可以接收另一個函數作為參數或者返回值為一個函數, 這種函數就稱之為高階函數。

          那對應到數組中有哪些方法呢?

          2.數組中的高階函數

          1.map

          • 參數:接受兩個參數,一個是回調函數,一個是回調函數的this值(可選)。

          其中,回調函數被默認傳入三個值,依次為當前元素、當前索引、整個數組。

          • 創建一個新數組,其結果是該數組中的每個元素都調用一個提供的函數后返回的結果
          • 對原來的數組沒有影響

          當然,后面的參數都是可選的 ,不用的話可以省略。

          2. reduce

          • 參數: 接收兩個參數,一個為回調函數,另一個為初始值。回調函數中三個默認參數,依次為積累值、當前值、整個數組。

          不傳默認值會怎樣?

          不傳默認值會自動以第一個元素為初始值,然后從第二個元素開始依次累計。

          3. filter

          參數: 一個函數參數。這個函數接受一個默認參數,就是當前元素。這個作為參數的函數返回值為一個布爾類型,決定元素是否保留。

          filter方法返回值為一個新的數組,這個數組里面包含參數里面所有被保留的項。

          4. sort

          參數: 一個用于比較的函數,它有兩個默認參數,分別是代表比較的兩個元素。

          舉個例子:

          當比較函數返回值大于0,則 a 在 b 的后面,即a的下標應該比b大。

          反之,則 a 在 b 的后面,即 a 的下標比 b 小。

          整個過程就完成了一次升序的排列。

          當然還有一個需要注意的情況,就是比較函數不傳的時候,是如何進行排序的?

          答案是將數字轉換為字符串,然后根據字母unicode值進行升序排序,也就是根據字符串的比較規則進行升序排序。

          第十一篇: 能不能手動實現數組的map方法 ?

          依照 ecma262 草案,實現的map的規范如下:

          下面根據草案的規定一步步來模擬實現map函數:

          這里解釋一下, length >>> 0, 字面意思是指"右移 0 位",但實際上是把前面的空位用0填充,這里的作用是保證len為數字且為整數。

          舉幾個特例:

          總體實現起來并沒那么難,需要注意的就是使用 in 來進行原型鏈查找。同時,如果沒有找到就不處理,能有效處理稀疏數組的情況。

          最后給大家奉上V8源碼,參照源碼檢查一下,其實還是實現得很完整了。

          參考:

          V8源碼

          Array 原型方法源碼實現大揭秘

          ecma262草案

          第十二篇: 能不能手動實現數組的reduce方法 ?

          依照 ecma262 草案,實現的reduce的規范如下:

          其中有幾個核心要點:

          1、初始值不傳怎么處理

          2、回調函數的參數有哪些,返回值如何處理。

          其實是從最后一項開始遍歷,通過原型鏈查找跳過空項。

          最后給大家奉上V8源碼,以供大家檢查:

          參考:

          V8源碼

          ecma262草案

          第十三篇: 能不能手動實現數組的 push、pop 方法 ?

          參照 ecma262 草案的規定,關于 push 和 pop 的規范如下圖所示:

          首先來實現一下 push 方法:

          親測已通過MDN上所有測試用例。MDN鏈接

          然后來實現 pop 方法:

          親測已通過MDN上所有測試用例。MDN鏈接

          參考鏈接:

          V8數組源碼

          ecma262規范草案

          MDN文檔

          第十四篇: 能不能手動實現數組的 filter 方法 ?

          代碼如下:

          MDN上所有測試用例親測通過。

          參考:

          V8數組部分源碼第1025行

          MDN中filter文檔

          第十五篇: 能不能手動實現數組的splice方法 ?

          splice 可以說是最受歡迎的數組方法之一,api 靈活,使用方便。現在來梳理一下用法:


          • splice(position, count) 表示從 position 索引的位置開始,刪除count個元素

          • splice(position, 0, ele1, ele2, ...) 表示從 position 索引的元素后面插入一系列的元素

          • splice(postion, count, ele1, ele2, ...) 表示從 position 索引的位置開始,刪除 count 個元素,然后再插入一系列的元素

          • 返回值為 被刪除元素組成的 數組。

          接下來我們實現這個方法。

          參照ecma262草案的規定,詳情請點擊。

          首先我們梳理一下實現的思路。

          初步實現

          先拷貝刪除的元素,如下所示:

          然后對刪除元素后面的元素進行挪動, 挪動分為三種情況:

          1. 添加的元素和刪除的元素個數相等
          2. 添加的元素個數小于刪除的元素
          3. 添加的元素個數大于刪除的元素

          當兩者相等時,

          當添加的元素個數小于刪除的元素時, 如圖所示:

          當添加的元素個數大于刪除的元素時, 如圖所示:

          優化一: 參數的邊界情況

          當用戶傳來非法的 startIndex 和 deleteCount 或者負索引的時候,需要我們做出特殊的處理。

          優化二: 數組為密封對象或凍結對象

          什么是密封對象?

          密封對象是不可擴展的對象,而且已有成員的[[Configurable]]屬性被設置為false,這意味著不能添加、刪除方法和屬性。但是屬性值是可以修改的。

          什么是凍結對象?

          凍結對象是最嚴格的防篡改級別,除了包含密封對象的限制外,還不能修改屬性值。

          接下來,我們來把這兩種情況一一排除。

          好了,現在就寫了一個比較完整的splice,如下:

          以上代碼對照MDN文檔中的所有測試用例親測通過。

          相關測試代碼請前往: 傳送門

          最后給大家奉上V8源碼,供大家檢查:V8數組 splice 源碼第 660 行

          第十六篇: 能不能實現數組的 sort 方法?

          估計大家對 JS 數組的sort 方法已經不陌生了,之前也對它的用法做了詳細的總結。那,它的內部是如何來實現的呢?如果說我們能夠進入它的內部去看一看, 理解背后的設計,會使我們的思維和素養得到不錯的提升。

          sort 方法在 V8 內部相對與其他方法而言是一個比較高深的算法,對于很多邊界情況做了反復的優化,但是這里我們不會直接拿源碼來干講。我們會來根據源碼的思路,實現一個 跟引擎性能一樣的排序算法,并且一步步拆解其中的奧秘。

          V8 引擎的思路分析

          首先大概梳理一下源碼中排序的思路:

          設要排序的元素個數是n:

          • 當 n <=10 時,采用 插入排序
          • 當 n > 10 時,采用 三路快速排序
          • 10 < n <=1000, 采用中位數作為哨兵元素
          • n > 1000, 每隔 200~215 個元素挑出一個元素,放到一個新數組,然后對它排序,找到中間位置的數,以此作為中位數

          在動手之前,我覺得我們有必要為什么這么做搞清楚。

          第一、為什么元素個數少的時候要采用插入排序?

          雖然 插入排序理論上說是O(n^2)的算法, 快速排序是一個O(nlogn)級別的算法。但是別忘了,這只是理論上的估算,在實際情況中兩者的算法復雜度前面都會有一個系數的, 當 n 足夠小的時候,快速排序 nlogn的優勢會越來越小,倘若插入排序O(n^2)前面的系數足夠小,那么就會超過快排。而事實上正是如此, 插入排序經過優化以后對于小數據集的排序會有非常優越的性能,很多時候甚至會超過快排。

          因此,對于很小的數據量,應用 插入排序是一個非常不錯的選擇。

          第二、為什么要花這么大的力氣選擇哨兵元素?

          因為 快速排序的性能瓶頸在于遞歸的深度,最壞的情況是每次的哨兵都是最小元素或者最大元素,那么進行partition(一邊是小于哨兵的元素,另一邊是大于哨兵的元素)時,就會有一邊是空的,那么這么排下去,遞歸的層數就達到了n, 而每一層的復雜度是O(n),因此快排這時候會退化成O(n^2)級別。

          這種情況是要盡力避免的!如果來避免?

          就是讓哨兵元素進可能地處于數組的中間位置,讓最大或者最小的情況盡可能少。這時候,你就能理解 V8 里面所做的種種優化了。

          接下來,我們來一步步實現的這樣的官方排序算法。

          插入排序及優化

          最初的插入排序可能是這樣寫的:

          看似可以正確的完成排序,但實際上交換元素會有相當大的性能消耗,我們完全可以用變量覆蓋的方式來完成,優化后代碼如下:

          接下來正式進入到 sort 方法。

          尋找哨兵元素

          sort的骨架大致如下:

          我們先來把求取哨兵位置的代碼實現一下:

          完成快排

          接下來我們來完成快排的具體代碼:

          測試結果

          測試結果如下:

          一萬條數據:

          十萬條數據:

          一百萬條數據:

          一千萬條數據:

          結果僅供大家參考,因為不同的node版本對于部分細節的實現可能不一樣,我現在的版本是v10.15。

          從結果可以看到,目前版本的 node 對于有序程度較高的數據是處理的不夠好的,而我們剛剛實現的排序通過反復確定哨兵的位置就能 有效的規避快排在這一場景下的劣勢。

          最后給大家完整版的sort代碼:

          參考鏈接:

          V8 sort源碼(點開第997行)

          冴羽排序源碼專題

          第十七篇: 能不能模擬實現一個new的效果?

          new被調用后做了三件事情:

          1. 讓實例可以訪問到私有屬性
          2. 讓實例可以訪問構造函數原型(constructor.prototype)所在原型鏈上的屬性
          3. 如果構造函數返回的結果不是引用數據類型

          第十八篇: 能不能模擬實現一個 bind 的效果?

          實現bind之前,我們首先要知道它做了哪些事情。

          1. 對于普通函數,綁定this指向
          2. 對于構造函數,要保證原函數的原型對象上的屬性不能丟失

          也可以這么用 Object.create 來處理原型:

          第十八篇: 能不能實現一個 call/apply 函數?

          引自 冴羽大佬的代碼,可以說比較完整了。

          不過我認為換成 ES6 的語法會更精煉一些:

          類似的,有apply的對應實現:

          第十九篇: 談談你對JS中this的理解。

          其實JS中的this是一個非常簡單的東西,只需要理解它的執行規則就OK。

          在這里不想像其他博客一樣展示太多的代碼例子弄得天花亂墜, 反而不易理解。

          call/apply/bind可以顯示綁定, 這里就不說了。

          主要這些場隱式綁定的場景討論:

          1. 全局上下文
          2. 直接調用函數
          3. 對象.方法的形式調用
          4. DOM事件綁定(特殊)
          5. new構造函數綁定
          6. 箭頭函數

          1. 全局上下文

          全局上下文默認this指向window, 嚴格模式下指向undefined。

          2. 直接調用函數

          比如:

          這種情況是直接調用。this相當于全局上下文的情況。

          3. 對象.方法的形式調用

          還是剛剛的例子,我如果這樣寫:

          這就是 對象.方法的情況,this指向這個對象

          4. DOM事件綁定

          onclick和addEventerListener中 this 默認指向綁定事件的元素。

          IE比較奇異,使用attachEvent,里面的this默認指向window。

          5. new+構造函數

          此時構造函數中的this指向實例對象。

          6. 箭頭函數?

          箭頭函數沒有this, 因此也不能綁定。里面的this會指向當前最近的非箭頭函數的this,找不到就是window(嚴格模式是undefined)。比如:

          優先級: new > call、apply、bind > 對象.方法 > 直接調用。

          第二十篇: JS中淺拷貝的手段有哪些?

          重要: 什么是拷貝?

          首先來直觀的感受一下什么是拷貝。

          這是直接賦值的情況,不涉及任何拷貝。當改變newArr的時候,由于是同一個引用,arr指向的值也跟著改變。

          現在進行淺拷貝:

          當修改newArr的時候,arr的值并不改變。什么原因?因為這里newArr是arr淺拷貝后的結果,newArr和arr現在引用的已經不是同一塊空間啦!

          這就是淺拷貝!

          但是這又會帶來一個潛在的問題:

          咦!不是已經不是同一塊空間的引用了嗎?為什么改變了newArr改變了第二個元素的val值,arr也跟著變了。

          這就是淺拷貝的限制所在了。它只能拷貝一層對象。如果有對象的嵌套,那么淺拷貝將無能為力。但幸運的是,深拷貝就是為了解決這個問題而生的,它能 解決無限極的對象嵌套問題,實現徹底的拷貝。當然,這是我們下一篇的重點。現在先讓大家有一個基本的概念。

          接下來,我們來研究一下JS中實現淺拷貝到底有多少種方式?

          1. 手動實現

          2. Object.assign

          但是需要注意的是,Object.assgin() 拷貝的是對象的屬性的引用,而不是對象本身。

          3. concat淺拷貝數組

          4. slice淺拷貝

          開頭的例子不就說的這個嘛!

          5. ...展開運算符

          第二十一篇: 能不能寫一個完整的深拷貝?

          上一篇已經解釋了什么是深拷貝,現在我們來一起實現一個完整且專業的深拷貝。

          1. 簡易版及問題

          估計這個api能覆蓋大多數的應用場景,沒錯,談到深拷貝,我第一個想到的也是它。但是實際上,對于某些嚴格的場景來說,這個方法是有巨大的坑的。問題如下:

          無法解決 循環引用的問題。舉個例子:

          拷貝a會出現系統棧溢出,因為出現了 無限遞歸的情況。

          無法拷貝一寫 特殊的對象,諸如 RegExp, Date, Set, Map等。

          無法拷貝 函數(劃重點)。

          因此這個api先pass掉,我們重新寫一個深拷貝,簡易版如下:

          現在,我們以剛剛發現的三個問題為導向,一步步來完善、優化我們的深拷貝代碼。

          2. 解決循環引用

          現在問題如下:

          這就是循環引用。我們怎么來解決這個問題呢?

          創建一個Map。記錄下已經拷貝過的對象,如果說已經拷貝過,那直接返回它行了。

          現在來試一試:

          好像是沒有問題了, 拷貝也完成了。但還是有一個潛在的坑, 就是map 上的 key 和 map 構成了 強引用關系,這是相當危險的。我給你解釋一下與之相對的弱引用的概念你就明白了:

          在計算機程序設計中,弱引用與強引用相對, 是指不能確保其引用的對象不會被垃圾回收器回收的引用。一個對象若只被弱引用所引用,則被認為是不可訪問(或弱可訪問)的,并因此可能在任何時刻被回收。--百度百科

          說的有一點繞,我用大白話解釋一下,被弱引用的對象可以在 任何時候被回收,而對于強引用來說,只要這個強引用還在,那么對象 無法被回收。拿上面的例子說,map 和 a一直是強引用的關系, 在程序結束之前,a 所占的內存空間一直 不會被釋放。

          怎么解決這個問題?

          很簡單,讓 map 的 key 和 map 構成 弱引用即可。ES6給我們提供了這樣的數據結構,它的名字叫 WeakMap,它是一種特殊的Map, 其中的鍵是 弱引用的。其鍵必須是對象,而值可以是任意的。

          稍微改造一下即可:

          3. 拷貝特殊對象

          可繼續遍歷

          對于特殊的對象,我們使用以下方式來鑒別:

          梳理一下對于可遍歷對象會有什么結果:

          好,以這些不同的字符串為依據,我們就可以成功地鑒別這些對象。

          不可遍歷的對象

          對于不可遍歷的對象,不同的對象有不同的處理。

          4. 拷貝函數

          雖然函數也是對象,但是它過于特殊,我們單獨把它拿出來拆解。

          提到函數,在JS種有兩種函數,一種是普通函數,另一種是箭頭函數。每個普通函數都是 Function的實例,而箭頭函數不是任何類的實例,每次調用都是不一樣的引用。那我們只需要 處理普通函數的情況,箭頭函數直接返回它本身就好了。

          那么如何來區分兩者呢?

          答案是: 利用原型。箭頭函數是不存在原型的。

          代碼如下:

          到現在,我們的深拷貝就實現地比較完善了。不過在測試的過程中,我也發現了一個小小的bug。

          5. 小小的bug

          如下所示:

          對于這樣一個bug,我們可以對 Boolean 拷貝做最簡單的修改, 調用valueOf: new target.constructor(target.valueOf())。

          但實際上,這種寫法是不推薦的。因為在ES6后不推薦使用【new 基本類型()】這 樣的語法,所以es6中的新類型 Symbol 是不能直接 new 的,只能通過 new Object(SymbelType)。

          因此我們接下來統一一下:

          6. 完整代碼展示

          OK!是時候給大家放出完整版的深拷貝啦:

          原文鏈接:https://mp.weixin.qq.com/s/9VNrcySO25upppjurxM5hA

          作者:前端三元同學

          銷行業輿情周報

          第八期

          時間:3月21日-3月27日


          本周輿情速遞

          最受關注行業輿情:疫情難擋營養保健食品貿易發展步伐

          最受關注企業輿情:2020安利紐崔萊營養中國行線上啟動

          最熱門話題討論:“提高免疫力”將為特殊食品創造新增長點

          利用海疇輿情監測系統,我們對中國直銷行業2020年3月14日至3月20日期間的網絡信息進行了監測。

          3月26日出現輿情小高峰

          如上圖所示,3月21日—3月27日監測期間,整體行業輿情走勢平穩。行業輿情關注度在3月22日迎來輿情熱度最低值,而3月26日為行業輿情熱度最高值。根據后臺數據分析可知,3月26日主要是《直銷行業倡導者JeffBabener離世》《做直銷不被親朋好友支持,怎么辦?大咖給你5個妙招》等輿情傳播。

          本周行業敏感信息占比9.12%

          將輿情信息分為敏感類和非敏感類信息進行統計,其中敏感類信息占比為9.12%,非敏感信息占比90.88%。

          本周微博發布信息大幅增加

          如上圖所示,信息發布渠道數量從高到低依次為微博占比41.1%,位居第一位;論壇占比16.57%,位居第二位;客戶端占比16.26%,位居第三位,此外,微信、網站占比也較高,視頻、報刊、政務、新聞、博客、外媒等來源占比較少。

          具體媒體活躍度方面,可以看出:新浪微博占比51.71%,位居第一位;微信占比19.33%,位居第二位;百度貼吧占比14.64%,位居第三位;此外,雪球、騰訊新聞企鵝號、看點快報、股吧、直銷同城網、網易號、微頭條等媒體對行業也進行了關注。

          此外,本監測期內,北京依舊是輿情信息發布最多的地區,共計889篇信息,其次是廣東790篇。


          本周行業新聞排行榜

          1.標題:受疫情影響全球食品行業正面臨三大挑戰 “提高免疫力”可為特殊食品創造新增長點

          來源媒體:中國經濟網

          轉載媒體:中國網/中國質檢網/鳳凰新聞/搜狐新聞/財經頭條/和訊網

          簡介:國際食品科技聯盟(IUFoST)與中國食品科學技術學會(CIFST)在3 月21日共同組織了一場食品科學網絡圓桌會議,以線上報告與互動的方式,探討新冠病毒是否能通過食品傳播,分析疫情期間食品產業遇到的挑戰與機遇。

          鏈接:http://food.china.com.cn/2020-03/26/content_75861674.htm

          2.標題:社交商業時代的直銷4.0模型——中國直銷行業升級迭代解決方案

          來源媒體:愛直銷微信公眾號

          轉載媒體:看點快報/直銷專業網/一點資訊/騰訊新聞企鵝號

          簡介:近來,直銷行業諸多企業紛紛將目光瞄準了社交電商,開始了轉型之路,海疇集團歷經兩年的系統思考和研究,隆重推出社交商業時代直銷4.0工程,為中國直銷企業升級迭代提供全面解決方案。該工程包含平臺硬核、市場分潤、品類運營、組織生態、教育賦能、IP吸粉、用戶裂變、風控穩盤等八大模型,將從頂層設計和落地實操,全方位助力企業解決現有發展瓶頸,打通直銷與社交電商壁壘。

          鏈接:http://kuaibao.qq.com/s/20200325V0M6LN00

          3.標題:疫情難擋營養保健食品貿易發展步伐

          來源媒體:金融界

          轉載媒體:搜狐新聞/看點快報//財經頭條/錢訊網/騰訊新聞企鵝號

          簡介:新冠肺炎疫情的全球蔓延給包括營養保健食品進出口在內的全球貿易帶來了重大挑戰,但“隨著疫情逐步好轉和全球供應鏈的恢復,行業將迎來難得的發展機遇,中國營養保健食品進出口也將實現恢復性增長。”中國醫藥保健品進出口商會健康事業部主任張中朋如是指出。

          鏈接:https://3g.k.sohu.com/t/n436789910

          4.標題:湖南從3月起開展保健食品專項整治:嚴厲打擊違規直銷傳銷

          來源媒體:國家市場監管總局

          轉載媒體:看點快報/新商業視訊/騰訊新聞企鵝號

          簡介:3月25日,記者從湖南省市場監管局獲悉,《2020年全省食品安全“護老”行動暨保健食品行業清理整治實施方案》正式印發,明確從3月起在湖南省開展專項整治行動,嚴厲打擊食品保健食品領域中違法違規行為,凈化市場環境。

          鏈接:http://kuaibao.qq.com/s/20200326A0FO6A00

          5.標題:廣州出臺政策支持直播電商新業態健康發展未來三年將孵化千個網紅品牌

          來源媒體:廣州市商務局

          轉載媒體:看點快報/米人網/玖融網/騰訊新聞企鵝號

          簡介:近日,廣州市商務局出臺《廣州市直播電商發展行動方案(2020-2022年)》(以下簡稱行動方案),從五個方面提出16條政策措施,大力發展直播電商,創新商業新模式,推動廣州市經濟高質量發展,助力廣州加快推進國際商貿中心建設。預計到2022年,推進實施“個十百千萬”工程:構建1批直播電商產業集聚區、扶持10家具有示范帶動作用的頭部直播機構、培育100家有影響力的MCN機構、孵化1000個網紅品牌(企業名牌、產地品牌、產品品牌、新品等)、培訓10000名帶貨達人(帶貨網紅、“網紅老板娘”等),將廣州打造成為全國著名的直播電商之都。

          鏈接:http://kuaibao.qq.com/s/20200324A0I59Z00


          本周企業動態

          1.2020安利紐崔萊營養中國行線上啟動

          簡介:3月22日,“打造健康防線,專家直播課堂”活動暨2020安利紐崔萊營養中國行啟動儀式在線上舉行。中國健康教育中心主任馬愛寧、中國疾病預防控制中心營養與健康所所長丁鋼強、科信食品與營養信息交流中心主任鐘凱、解放軍總醫院第八醫學中心營養科主任左小霞等衛生健康、營養學界的專家們,通過線上直播形式,解鎖防疫營養健康干貨,硬核科普“養生千萬條,科學第一條”。

          鏈接:http://www.iyaxin.com/system/2020/03/27/036178071.shtml

          2.4月1日起,艾多美(中國)開放注冊

          簡介:艾多美中國公告稱,艾多美(中國)自2017年成立以來,在各界的矚目和期待中,一直以“正善上略”的經營哲學為基礎,為向中國消費者提供“大眾精品”的產品,并實現“顧客成功”的企業目標而做了諸多努力。現公司決定,自2020年4月1日下午13:00起,可通過公司官方網站注冊消費會員及申請經銷商(官網購物商城開放時間另行通知)。

          鏈接:https://view.inews.qq.com/a/20200325A0QPK600

          3.自然陽光2019第四季度財務報表:凈銷售利潤漲幅89.2%

          簡介:近日,美國天然營養補充品公司自然陽光(Nature’s SunshineProducts,Inc)公布了第四季度財務業績報告,據報告顯示,截止2019年12月31日,自然陽光第四季度實現凈銷售額9,170萬美元;調整后息稅折舊及攤銷前利潤從上年的400萬美元增至760萬美元,增幅89.2%。

          鏈接:http://www.yidianzixun.com/article/0OwO5Dkg

          4.金天國際發起及起草《兒童口罩》團體標準正式發布

          簡介:近日,繼《雪蓮養護貼》行業標準進入公示,由金天國際發起并參與起草的山東省《兒童口罩》團體標準經專家審定后,由全國團體標準信息平臺于3月23日正式發布實施。

          鏈接:http://www.theweishang.com/v1/306737.aspx

          5.康寶萊愛心救護車抵漢交付全力支援疫情攻堅戰

          簡介:3月25日,中國北京——全球知名的美國營養品公司康寶萊今日宣布,其通過中國紅十字基金會購置捐贈的9輛救護供血車已抵達武漢交付湖北省血液管理中心,主要用于小宗血液和疫苗運輸工作,為疫情防控攻堅戰提供助力。早前,康寶萊連續兩次攜手廣大愛心服務提供商,向武漢市及周邊疫情較嚴重地區進行捐款,累計捐款總額逾267萬元人民幣。

          鏈接:http://kuaibao.qq.com/s/20200325A0FPXH00

          6.和治友德邀世衛組織專家打造“健康復工”公益講座

          簡介:3月25日,由和治友德公司共同倡議發起,國際非營利組織CEO Roundtable on Cancer(“防癌抗癌總裁圓桌會”)在華機構——拓新健康合作舉辦的“健康復工,踏實上班-企業返工復工的健康防護 / 危機中的心理呵護”線上直播公益講座成功舉行。此次公益講座活動邀請了世界衛生組織駐華代表處專家和知名心理治療師,針對疫情期間的復工防護和心理疏導等社會關注熱點問題做了專業權威的講解培訓。

          鏈接:http://www.cnbzol.com/gd/20200326/032020_193773.html

          7.無限極入編《中國年鑒》(2019)

          簡介:近日,由新華通訊社主辦、中華人民共和國年鑒社編輯的《中華人民共和國年鑒》(2019)(以下簡稱《中國年鑒》)正式出版,并面向海內外公開發行。無限極(中國)有限公司作為新華社民族品牌工程入選企業,入編了《中國年鑒》。

          鏈接:https://www.sohu.com/a/383523616_100108690

          8.康婷甘肅分公司建立消費者維權“綠色通道”

          簡介:天津康婷公司甘肅分公司等36家企業率先與甘肅省12315指揮中心樹立消費維權“綠色通道”的協作機制。推進會當天,36家成員單位書面或大會發言交流了任務經歷,省工商局有關指導同志為36家單位頒發了綠色通道成員單位牌匾,并簽署了《12315消費爭議疾速和解綠色通道任務協議》。

          鏈接:https://3g.k.sohu.com/t/n437391120

          9.炎帝生物線上推廣暨新品發布會舉行

          簡介:3月21日,炎帝生物“健康財富UP UP UP!”線上推廣暨新品發布活動持續升溫。炎帝全球執行總裁、董事CEO鐘建和,新疆炎帝博格達酒業總經理王紅亮、炎帝大使蔣玉成傾情互動,重磅分享,為廣大追求幸福生活的伙伴,增添了一抹春日里的陽光。

          鏈接:http://www.ahjuyi.com/jyjd/0326691.html

          10.玫琳凱維權勝訴!狀告兩淘寶店鋪,獲賠115萬

          簡介:一年前,玫琳凱公司將兩個售賣其刮碼產品的淘寶店鋪訴至公堂。近日,兩起案件分別宣判,玫琳凱維權勝訴,共計獲賠115萬。兩個案件的立案時間相隔23日,審理時間相差11日,公示時間僅差三天。同樣的原告,同樣的訴由,但不同的是,一家店鋪已不復存在,而另一家店鋪仍在淘寶上活躍著。官司雖然以勝訴結尾,但在電商平臺上,仍有很多店鋪在線銷售玫琳凱的商品。對此,玫琳凱表示,對此類行為將繼續打擊。

          鏈接:http://kuaibao.qq.com/s/20200326A0PE7K00


          本周輿情分析

          行業整體敏感信息略有增長

          與上周敏感信息占比7.88%相比,本周行業敏感信息占比9.12%,敏感輿情有所上升,其中,敏感信息關注點集中在發展下線、保健品夸大宣傳等方面。

          具體敏感信息來源分析可見,新浪微博占比69%,位居第一位;百度貼吧占比6%,位居第二位;微信占比4.5%,位居第三位。此外,微頭條、騰訊新聞企鵝號、知乎、股吧、百度知道、看點快報、搜狐號等媒體對行業敏感信息較為關注,建議各企業提高警惕。

          新浪微博來源信息占比超50%

          本監測期內,行業信息中,新浪微博端的信息量大幅增加,對比上周的占比36.04%,本周新浪微博占比高達51.71%,成為最大的媒體來源。

          值得注意的是,由于網友層次不一、屬性各異,新浪微博也成為行業敏感信息的最大來源,對企業敏感信息擴散起到了推波助瀾的作用,需各企業引起重視。

          “提高免疫力”將為特殊食品行業創造新的增長點

          本周,來自中國經濟網的《受疫情影響全球食品行業正面臨三大挑戰》一文受到極大關注,文中提到,目前全球食品行業正面臨三大挑戰,同時,后疫情時代食品工業或將迎來四大機遇。其中,“提高免疫力”將為特殊食品行業創造新的增長點。而直銷行業中,90%的企業均擁有提升免疫力的保健食品,在新冠疫情的影響下,此類產品需求量大幅提升,可以預見,直銷行業發展也將迎來新的增長。

          多家企業受媒體關注程度高

          本周,企業在復工復產的基礎上,積極推出新舉措,多家企業受到媒體的廣泛關注,具體來說:

          《2020安利紐崔萊營養中國行線上啟動》一文,轉載328次;

          《康寶萊愛心救護車抵漢交付 全力支援疫情攻堅戰》一文,轉載152次;

          《金天國際發起及起草《兒童口罩》團體標準正式發布》一文,轉載53次;

          《和治友德邀世衛組織專家打造“健康復工”公益講座》一文,轉載37次;

          《康婷甘肅分公司建立消費者維權“綠色通道”》一文,轉載35次。

          注:本報告內容均源自對網絡信息的抓取梳理,我們已力求報告內容的客觀、公正,但文中采用的報道、分析和資訊僅供參考,不構成任何建議。


          海疇輿情監測中心

          海疇直銷研究中心

          聯合編制


          主站蜘蛛池模板: 中文字幕Av一区乱码| 精品91一区二区三区| 性色AV一区二区三区| 精品无码中出一区二区| 免费观看日本污污ww网站一区| 国产在线第一区二区三区| 日本欧洲视频一区| 中文字幕精品一区| 一级毛片完整版免费播放一区| 日本内射精品一区二区视频| 国产精品丝袜一区二区三区| 中字幕一区二区三区乱码| 国产精品毛片VA一区二区三区| 成人精品一区二区三区中文字幕| 精品一区二区三区影院在线午夜 | 国产免费无码一区二区| 动漫精品专区一区二区三区不卡| 国产凸凹视频一区二区| 精品一区二区三区影院在线午夜| 精品在线一区二区三区| 精品国产不卡一区二区三区| 红杏亚洲影院一区二区三区 | 伦精品一区二区三区视频| 末成年女AV片一区二区| 亚洲午夜一区二区三区| 人妻av综合天堂一区| 成人精品一区二区激情| 色欲AV无码一区二区三区| 国产精品亚洲综合一区| 无码人妻精品一区二区三区东京热 | 日韩成人无码一区二区三区 | 香蕉久久av一区二区三区| 无码人妻久久一区二区三区| 久久久久人妻一区精品性色av| 精品一区精品二区制服 | 日韩三级一区二区三区| 精品人妻少妇一区二区三区不卡| 国产成人精品一区二三区| 精品国产日韩亚洲一区| 无码人妻视频一区二区三区| 亚洲欧美日韩中文字幕在线一区|