原创 js:淺談函數式編程

背景 函數式編程是一種編程思想,是編程範式的一種,其餘的還有命令式(指令式)編程和麪向對象編程。 函數式舉例 假設我們要把字符串 functional programming is great 變成每個單詞首字母大寫 var st

原创 js:js和php中的關聯數組和索引數組

不知道你有沒有這樣的疑問,在 js 裏對象的表示是這樣的: var obj = {} obj.a = 1 但是在 PHP 中卻是叫關聯數組: <?php //創建一個關聯數組,關聯數組的鍵“orange”,值是“橘子”

原创 js:騰訊雲播放器無法自動播放的問題

結論 設置了自動播放屬性,視頻沒有自動播放,這個在許多瀏覽器中,都禁止了多媒體文件自動播放,特別是移動端瀏覽器。部分瀏覽器允許靜音視頻或者無音軌視頻自動播放,因此可以嘗試將播放器設置爲靜音。對於靜音也無法播放的瀏覽器,暫無解決辦法

原创 js:如何讓視頻在頁面全屏並且右上角顯示跳過按鈕

背景 有個需求是首頁的時候直接出來一個全屏的視頻,右上角有個跳過按鈕,點擊跳過進入網站或者視頻播放完進入網站,現在分別提供了pc端和移動端兩個視頻: pc端視頻大小 1920*1080 移動端視頻大小 750*1624(ipho

原创 js:那些容易被我們忽略的隱式轉換

強制轉換 Number、String和Boolean三個函數 其他的數據類型轉換爲String toString()方法 String()函數 其他的數據類型轉換爲Number parseInt() & parseFloat

原创 react:實現簡單的redux

簡單的狀態管理器 第一階段 首先我們做一個小功能,點擊按鈕改變數字 /*------count 的發佈訂閱者實踐------*/ let state = { count: 1 }; let listeners = []; /*

原创 vue系列:data爲什麼必須是一個返回對象的方法

結論 因爲對象是引用數據類型,如果你寫成對象,這個組件在多處被引用,只要修改一處的值,那麼另一處的引用的值也會變化,這樣就亂套了。 而使用返回對象的函數,由於每次返回的都是一個新對象(Object的實例),引用地址不同,則不會出現

原创 react:redux和react-redux

文章目錄工作流程名詞解釋UI組件和容器組件connect()mapStateToProps()mapDispatchToProps()`` 組件計時器完整代碼例子React-Router 路由庫 工作流程 用戶(通過View)發

原创 從輸入url到頁面顯示經歷了什麼

文章目錄總結背景1、域名解析2、TCP 三次握手3、發送 HTTP 請求4、服務器處理請求並返回 HTTP 報文瀏覽器解析渲染頁面1.根據 HTML 解析 DOM 樹2.根據 CSS 解析生成 CSS 規則樹3.結合 DOM 樹和

原创 js:ajax、axios、fetch的區別

原生ajax 核心 XMLHttpRequest(XHR) 缺點: 寫法複雜,回調地獄等等 jquery ajax JQuery ajax 是對原生XHR的封裝,除此以外還增添了對JSONP的支持。 缺點: 1.本身是針對MVC的

原创 js:賦值、深拷貝和淺拷貝

文章目錄前提結論賦值淺拷貝淺拷貝的實現方式深拷貝的實現方式 前提 深拷貝和淺拷貝是隻針對Object和Array這樣的引用數據類型的。 結論 淺拷貝只複製指向某個對象的指針,而不復制對象本身,新舊對象還是共享同一塊內存。 但深拷貝

原创 js:閉包的經典例子

例一 內存泄漏 function outer() { var num = 0; //內部變量 return function add() { //通過return返回add函數,就可以在outer函數外訪問了 nu

原创 瀏覽器緩存:memory cache、disk cache、強緩存協商緩存等概念

文章目錄分類memory cachedisk cacheService WorkerPush Cache緩存過程強緩存1、Expires2、Cache-ControlExpires 和 Cache-Control 的差別協商緩存L

原创 react:context上下文的使用

解決的問題 react 中,數據是通過 props 屬性自上而下(由父及子)進行傳遞的,但這種做法對於某些類型的屬性而言是極其繁瑣的。Context 設計目的是爲了共享那些對於一個組件樹而言是“全局”的數據。 // Context

原创 react:受控組件與非受控組件

背景 <input value={this.state.inputValue} /> 當用戶對input進行操作時,沒有對inputValue進行setState()操作,這個值不變,也就意味着input顯示不變。 受控組件 每