原创 【面向JS--HTML DOM常用對象】

Image對象:指代一個img元素 var img =new Image();//只有image和option可new Select對象: 指代一個select元素 屬性: options: 包含一個select下所有optio

原创 canvas+audio+range 模擬音樂播放器

這次利用h5的一些功能,來簡單實現一個音樂播放器的播放界面,主要體現在canvas繪製,audio播放音頻,range控制進度及音量。 h5有很大的瀏覽器兼容性問題,這裏不做考慮。 demo中有一個canvas動畫的實現,考慮到動

原创 圖解JavaScript——進階篇(執行上下文、變量對象、作用域、作用域鏈、閉包、this、原型及原型鏈、事件循環等一把梭)

一、函數執行過程 本節主要從代碼整個執行過程出發,然後闡述遇到函數後如何執行,緊接着分點對執行過程中的關鍵知識點(執行上下文、變量對象、作用域、作用域鏈、this指向、閉包、原型、原型鏈等)進行闡述,按照自己的理解將整個過程進

原创 vue-數據監聽與依賴收集

文章圍繞下面demo進行分析 <div id="app"> <span>{{a.b}} {{c}} {{d}}</span> </div> <script>     var app = new Vue({        

原创 【面向JS--DOM加載過程】

DOM加載過程: layout: 重新計算佈局——效率低 只要改變DOM樹上的元素,都會重新layout——效率更低 如何減少layout的次數:先在內存中拼湊要添加的DOM子樹,然後一次性掛到頁面,只會觸發一次layout——

原创 【面向JS--DOM 操作API】

選取元素 1、按HTML屬性選取: 1、按id查找: var elem=document.getElementByid("id"); 返回一個元素對象。如果未找到,返回null 2、按標籤名查找: 返回動態集合

原创 【面向JS--事件】

事件:event:瀏覽器自動觸發的或用戶手動觸發的頁面狀態的改變 事件處理函數: 當事件發生時自動調用的函數 當希望在事件發生時,自動調用一個函數,都要在事件發生前,將函數綁定到事件屬性上 如何綁定: 3種: 1、在html中

原创 【面向JS--BOM】

BOM(Browser Object Document)即瀏覽器對象模型。 BOM提供了獨立於內容 而與瀏覽器窗口進行交互的對象; 由於BOM主要用於管理窗口與窗口之間的通訊,因此其核心對象是window; BOM由一系列相關的對

原创 【面向JS--元素定位】

1、offset系列方法 offset示意圖 2、scroll系列方法 scroll示意圖 3、client系列 clientX和clientY 獲取鼠標在可視區域的位置 clientWidth = wi

原创 【面向JS--DOM 遞歸API】

1、NodeIterator 按照深度優先的順序,依次遍歷每個節點對象 深度優先: 優先遍歷一個節點的下級節點,只有下級節點遍歷完,才遍歷兄弟節點 如何使用: 2步: 1、創建NodeIterator對象: var iterato

原创 【面向JS--定時器】

定時器分爲 週期性定時器 和 一次性定時器 週期性定時器: 讓程序每隔一段時間間隔,反覆執行一項任務 如何使用: 3步: 1、聲明任務函數: 定時器每次執行的任務 function task(){...} 任務函數

原创 JS開發常用工具函數

1、isStatic:檢測數據是不是除了symbol外的原始數據 function isStatic(value) { return( typeof value === 'string' || typeof value

原创 vue數據初始化--initState

數據初始化 Vue 實例在建立的時候會運行一系列的初始化操作,而在這些初始化操作裏面,和數據綁定關聯最大的是 initState。 首先,來看一下他的代碼: function initState(vm) { vm._watchers

原创 vue響應式系統--observe、watcher、dep

Vue的響應式系統 Vue 最獨特的特性之一,是其非侵入性的響應式系統。數據模型僅僅是普通的JavaScript 對象,而當你修改它們時,視圖會進行更新,這使得狀態管理非常簡單直接,我們可以只關注數據本身,而不用手動處理數據到視圖的渲

原创 vue自定義指令--directive

Vue中內置了很多的指令,如v-model、v-show、v-html等,但是有時候這些指令並不能滿足我們,或者說我們想爲元素附加一些特別的功能,這時候,我們就需要用到vue中一個很強大的功能了—自定義指令。 在開始之前,我們需要明確