原创 ECMAScript中的對象

什麼是對象 ECMAScript中沒有其它面嚮對象語言中類的概念,所以對象的概念也有所不同。在ECMAScript中,對象可以理解爲一組沒有特定順序的鍵值對,每個對象都是基於一個引用類型創建的,可以是原生的引用類型,也可以是開發者

原创 ECMAScript創建對象1 —— Object()、工廠模式、構造函數模式

使用Object構造函數或對象字面量 在JavaScript中,我們可以很輕鬆的通過如下方式創建一個對象 var obj1 = new Object(); obj1.proto1 = 'proto1'; // 使用Object構造

原创 數據響應式基礎

Object.defineProperty() Object.defineProperty() 方法會直接在一個對象上定義一個新屬性,或者修改一個對象的現有屬性,並返回此對象。它接收三個參數 obj:需要被定義新屬性或改變屬性

原创 實現一個Vue-router插件

Vue插件開發 我們開發的插件需要實現一個install方法,它接收的第一個參數是Vue的構造器;通過全局方法 Vue.use() 使用插件。它需要在你調用 new Vue() 啓動應用之前完成。 hash模式和history模式

原创 手寫VUE1——實現解析k-text、k-html、插值表達式功能

創建KVue類,保存options和data,需要實現響應式、數據代理、編譯模板的功能 class KVue { constructor(options) { this.$options = options t

原创 html加css製作一個滑動開關

這樣的一個開關還是比較常用的,實現的方法也挺多,記錄html+css實現的一種 html: <div class="switch-btn"> <input type="checkbox" class="hidden-checkbox

原创 模擬Vuex插件

需求 Vuex是一個幫助我們集中管理vue組件狀態的狀態管理插件,我們將模擬它的state、mutation、action、getter。在組件內,我們可以通過vm.store.commit()來更改state,或者使用vm.st

原创 Vue-router插件——嵌套路由

實際生活中的應用界面,通常由多層嵌套的組件組合而成。同樣地,URL 中各段動態路徑也按某種結構對應嵌套的各層組件,例如: const router1 = [ { path: '/', name: 'home',

原创 算法 —— 斐波那契數列

題目 代碼: var fib = function(N) { switch (N) { case 0: case 1: return N; default

原创 算法 —— 兩數之和

題目 代碼: var twoSum = function(nums, target) { let obj = {}; for(let i =0; i < nums.length; i++) { let

原创 算法 —— 三數之和

題目: 代碼: /* * [15] 三數之和 * 1、排序 * 2、當前作爲第一個數,分別選取右邊的第一個和最後一個進行計算,等於0,把值放入result * 3、判斷nums[i]是否與左側的數相等,相等則跳過 * 4、判

原创 JavaScript---- nodetype的值

DOM1定義了一個Node接口,該接口將有DOM中所有節點類型實現。除IE外其他瀏覽器中都可以訪問這個類型 1 ELEMENT_NODE  元素節點 2 ATTRIBUTE_NODE  屬性節點 3 TEXT_NODE  文本節點 4 C

原创 es6 var let const

js有個概念叫沒有代碼塊,其實就是說if、for、while大括號裏面用var聲明的變量在大括號外是能夠訪問的,而es6提供的let、const關鍵字則不一樣了,‘代碼塊內如果存在 let 或者 const,代碼塊會對這些命令聲明的變量從

原创 前端開發——select的點擊事件

近幾天,在用select-option實現一個時間選擇器的時候遇到了一點問題。最開始使用select的change事件監聽用戶的選擇,發現第一個問題:當用戶連續兩次點擊同一個option時,不能觸發change事件。想想挺合理的,valu

原创 chorme不同版本下window.scrollTo方法的參數問題

今天同事測試項目的時候發現自己的chorme報錯 用自己的電腦連接各種環境都沒能重現,查了一下文檔,發現window.scrollTo的參數有兩種形式: 查看項目的代碼,發現項目使用的是第二種,猜測會不會是瀏覽器版本不支持,查看同事的c