摘要:專題系列共計篇,主要研究日常開發中一些功能點的實現,比如防抖節流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點是研究專題之函數組合專題系列第十六篇,講解函數組合,并且使用柯里化和函數組合實現模式需求我們需要寫一個函數,輸入,返回。
JavaScript 專題之從零實現 jQuery 的 extend
JavaScritp 專題系列第七篇,講解如何從零實現一個 jQuery 的 extend 函數 前言 jQuery 的 extend 是 jQuery 中應用非常多的一個函數,今天我們一邊看 jQuery 的 extend 的特性,一邊實現一個 extend! extend …
JavaScript 專題系列第十五篇,講解惰性函數 需求 我們現在需要寫一個 foo 函數,這個函數返回首次調用時的 Date 對象,注意是首次。 解決一:普通方法 var t; function foo() { if (t) return t; t = new Date()…
JavaScript 專題系列第一篇,講解防抖,帶你從零實現一個 underscore 的 debounce 函數 前言 在前端開發中會遇到一些頻繁的事件觸發,比如: window 的 resize、scroll mousedown、mousemove keyup、keydow…
JavaScript專題系列第五篇,講解更加復雜的類型判斷,比如 plainObject、空對象、類數組對象、Window對象、DOM 元素等 前言 在上篇《JavaScript專題之類型判斷(上)》中,我們抄襲 jQuery 寫了一個 type 函數,可以檢測出常見的數據類型…
JavaScript 專題系列第三篇,講解各種數組去重方法,并且跟著 underscore 寫一個 unique API 前言 數組去重方法老生常談,既然是常談,我也來談談。 雙層循環 也許我們首先想到的是使用 indexOf 來循環判斷一遍,但在這個方法之前,讓我們先看看最原…
亂序的意思就是將數組打亂。 嗯,沒有了,直接看代碼吧。 Math.random() - 0.5 隨機得到一個正數、負數或是 0,如果是正數則降序排列,如果是負數則升序排列,如果是 0 就不變,然后不斷的升序或者降序,最終得到一個亂序的數組。 看似很美好的一個方案,實際上,效果卻…
JavaScript 專題系列第二篇,講解節流,帶你從零實現一個 underscore 的 throttle 函數 前言 在《JavaScript專題之跟著underscore學防抖》中,我們了解了為什么要限制事件的頻繁觸發,以及如何做限制: debounce 防抖 throt…
JavaScript 專題系列第九篇,講解如何實現數組的扁平化,并解析 underscore 的 _.flatten 源碼 扁平化 數組的扁平化,就是將一個嵌套多層的數組 array (嵌套可以是任何層數)轉換為只有一層的數組。 舉個例子,假設有個名為 flatten 的函數可…
JavaScritpt 專題系列第八篇,講解多種方式求數組的最大值和最小值 前言 取出數組中的最大值或者最小值是開發中常見的需求,但你能想出幾種方法來實現這個需求呢? Math.max JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是: Math…
JavaScript專題系列第四篇,講解類型判斷的各種方法,并且跟著 jQuery 寫一個 type 函數。 前言 類型判斷在 web 開發中有非常廣泛的應用,簡單的有判斷數字還是字符串,進階一點的有判斷數組還是對象,再進階一點的有判斷日期、正則、錯誤類型,再再進階一點還有比如…
JavaScript 專題系列是我寫的第二個系列,第一個系列是 JavaScript 深入系列。 JavaScript 專題系列共計 20 篇,主要研究日常開發中一些功能點的實現,比如防抖、節流、去重、類型判斷、拷貝、最值、扁平、柯里、遞歸、亂序、排序等,特點是研(chao)究…
JavaScript 專題系列第十六篇,講解函數組合,并且使用柯里化和函數組合實現 pointfree 模式 需求 我們需要寫一個函數,輸入 "kevin",返回 "HELLO, KEVIN"。 嘗試 var toUpperCase = function(x) { return…
JavaScript 專題系列第十二篇,講解如何判斷兩個參數是否相等 前言 雖然標題寫的是如何判斷兩個對象相等,但本篇我們不僅僅判斷兩個對象相等,實際上,我們要做到的是如何判斷兩個參數相等,而這必然會涉及到多種類型的判斷。 相等 什么是相等?在《JavaScript專題之去重》…
JavaScript 專題系列第十一篇,講解 jQuery 通用遍歷方法 each 的實現 each介紹 jQuery 的 each 方法,作為一個通用遍歷方法,可用于遍歷對象和數組。 語法為: jQuery.each(object, [callback])回調函數擁有兩個參數…
JavaScript 專題系列第十四篇,講解偏函數以及如何實現一個 partial 函數 定義 維基百科中對偏函數 (Partial application) 的定義為: In computer science, partial application (or partial …
JavaScript專題系列第十篇,講解如何從數組中查找指定元素,并且跟著 undersocre 實現 findIndex 和 findLastIndex、sortedIndex、indexOf 和 lastIndexOf 前言 在開發中,我們經常會遇到在數組中查找指定元素的需…
JavaScript 專題系列第十八篇,講解遞歸和尾遞歸 定義 程序調用自身的編程技巧稱為遞歸(recursion)。 階乘 以階乘為例: function factorial(n) { if (n == 1) return n; return n * factorial(n …
JavaScript 專題系列第六篇,講解深淺拷貝的技巧和以及實現深淺拷貝的思路 前言 拷貝也是面試經典吶! 數組的淺拷貝 如果是數組,我們可以利用數組的一些方法比如:slice、concat 返回一個新數組的特性來實現拷貝。 比如: var arr = ["old", 1, …
v8 是 Chrome 的 JavaScript 引擎,其中關于數組的排序完全采用了 JavaScript 實現。 排序采用的算法跟數組的長度有關,當數組長度小于等于 10 時,采用插入排序,大于 10 的時候,采用快速排序。(當然了,這種說法并不嚴謹)。 我們先來看看插入排序…
JavaScript 專題系列第十三篇,講解函數柯里化以及如何實現一個 curry 函數 定義 維基百科中對柯里化 (Currying) 的定義為: In mathematics and computer science, currying is the technique o…
JavaScript 專題系列第十七篇,講解函數記憶與菲波那切數列的實現 定義 函數記憶是指將上次的計算結果緩存起來,當下次調用時,如果遇到相同的參數,就直接返回緩存中的數據。 舉個例子: function add(a, b) { return a + b; } // 假設 m…
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90268.html
摘要:寫在前面專題系列是我寫的第二個系列,第一個系列是深入系列。專題系列自月日發布第一篇文章,到月日發布最后一篇,感謝各位朋友的收藏點贊,鼓勵指正。 寫在前面 JavaScript 專題系列是我寫的第二個系列,第一個系列是 JavaScript 深入系列。 JavaScript 專題系列共計 20 篇,主要研究日常開發中一些功能點的實現,比如防抖、節流、去重、類型判斷、拷貝、最值、扁平、柯里...
摘要:專題系列第十八篇,講解遞歸和尾遞歸定義程序調用自身的編程技巧稱為遞歸。然而非尾調用函數,就會創建多個執行上下文壓入執行上下文棧。所以我們只用把階乘函數改造成一個尾遞歸形式,就可以避免創建那么多的執行上下文。 JavaScript 專題系列第十八篇,講解遞歸和尾遞歸 定義 程序調用自身的編程技巧稱為遞歸(recursion)。 階乘 以階乘為例: function factorial(n...
摘要:前言自從上次在掘金發布年山地人的前端完整自學計劃講一個站主山地人的天前端自學故事以來,一眨眼山地人老哥在站做主已經有天了。所以這個體系里的一些框架包括也是山地人年自學計劃的一部分。月底,山地人老哥開啟了的兩個專題。 前言 自從上次在掘金發布【2019年山地人的前端完整自學計劃——講一個B站UP主山地人的40天前端自學故事】 以來,一眨眼山地人老哥在B站做Up主已經有85天了。 時隔一個...
摘要:所以它與其他系列的文章并不沖突,完全可以在閱讀完這個系列后,再跟著其他系列的文章接著學習。如何閱讀我在寫系列的時候,被問的最多的問題就是該怎么閱讀源碼我想簡單聊一下自己的思路。感謝大家的閱讀和支持,我是冴羽,下個系列再見啦 前言 別名:《underscore 系列 8 篇正式完結!》 介紹 underscore 系列是我寫的第三個系列,前兩個系列分別是 JavaScript 深入系列、...
摘要:寫在前面深入系列共計篇已經正式完結,這是一個旨在幫助大家,其實也是幫助自己捋順底層知識的系列。深入系列自月日發布第一篇文章,到月日發布最后一篇,感謝各位朋友的收藏點贊,鼓勵指正。 寫在前面 JavaScript 深入系列共計 15 篇已經正式完結,這是一個旨在幫助大家,其實也是幫助自己捋順 JavaScript 底層知識的系列。重點講解了如原型、作用域、執行上下文、變量對象、this、...
閱讀 2504·2021-11-15 11:38
閱讀 1947·2021-11-05 09:37
閱讀 2256·2021-10-08 10:12
閱讀 2807·2019-08-30 15:55
閱讀 2111·2019-08-30 15:52
閱讀 1219·2019-08-29 13:24
閱讀 462·2019-08-26 18:27
閱讀 1471·2019-08-26 18:27