原创 【Vue源碼】第十六節深入響應式原理之依賴收集

學習Object.defineProperty Object.defineProperty(obj, prop, descriptor) obj:必需。目標對象; prop: 必需。需定義或修改的屬性的名字; descript

原创 【leetcode初級算法JS實現】6.只出現一次的數字

// 用異或算法,這題以前做過,解法有點騷,所以印象深刻 /** * @param {number[]} nums * @return {number} */ var singleNumber = function(num

原创 【Vue源碼】第二節Vue的入口文件,即Vue的構造函數

我們通過學習Vue的入口文件,來學習Vue的構造函數。 尋找vue所在的文件 在上一節我們學習rollup打包文件的時候,發現編譯版本的入口文件是/src/platforms/web/entry-runtime-with-comp

原创 【JS基礎記錄】閉包與高階函數

閉包 當函數可以記住並訪問所在的詞法作用域時,就產生了閉包,即時函數是在當前詞法作用域之外執行。 function foo () { let a = 2; function bar(){ con

原创 【Vue源碼】第一節Flow、Vue源碼目錄設計和Rolluo構建Vue.js源碼

代碼地址:vue2.5.0 參考資料: - Vue源碼探祕系列 - Vue.js 技術揭祕 Flow 在 Vue.js 的主目錄下有 .flowconfig 文件, 它是 flow 的配置文件。其中的[libs]用來描述包含指定庫

原创 【Vue源碼】第三節數據驅動之_init()方法

我們通常使用vue的時候是這麼用的: <div id="app"> {{ message }} </div> <script> var app = new Vue({ el: '#app', data() {

原创 【leetcode初級算法JS實現】11.旋轉圖像

// 解法1: // 但是使用了額外的數組 /** * @param {number[][]} matrix * @return {void} Do not return anything, modify matrix in

原创 【leetcode初級算法JS實現】1.刪除排序數組中的重複項

// 解法1 // 從後開始遍歷,當 當前的數與前一個相等時,則移除當前的數。 /** * @param {number[]} nums * @return {number} */ var removeDuplicates

原创 【leetcode初級算法JS實現】12.字符串反轉

編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 char[] 的形式給出。 不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 你可以假設數組中的所有字符都是 AS

原创 【leetcode初級算法JS實現】4.存在重複元素

// 解法1:使用set /** * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { r

原创 【leetcode初級算法JS實現】2.買賣股票的最佳時機 II

/** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { let total = 0;

原创 【leetcode初級算法JS實現】10.有效的數獨

示例 1: 輸入: [ ["5","3",".",".","7",".",".",".","."], ["6",".",".","1","9","5",".",".","."], [".","9","8",".","

原创 【leetcode初級算法JS實現】9.兩數之和

// 遍歷循環,target減去當前的值,獲得差,在數組中尋找這個差 /** * @param {number[]} nums * @param {number} target * @return {number[]}

原创 【leetcode初級算法JS實現】17.字符串轉換整數 (atoi)

請你來實現一個 atoi 函數,使其能將字符串轉換成整數。 首先,該函數會根據需要丟棄無用的開頭空格字符,直到尋找到第一個非空格的字符爲止。接下來的轉化規則如下: 如果第一個非空字符爲正或者負號時,則將該符號與之後面儘可能多的連續

原创 【leetcode初級算法JS實現】5.兩個數組的交集 II

// 解法1: // 先判斷某個數組是否是空,是的話交集就是[]; // 判斷哪個數組的長度比較小,小的數組來遍歷 // 遍歷的過程中,如果發現相等,就存起來,並且刪除長數組對應的元素 /** * @param {numbe