原创 JS 對象合併與克隆方法的分類與比較

對象的合併與拷貝(又稱複製或克隆)是前端們平時工作中繞不開的基本操作,使用場景非常多。也許你已經有了自己用慣了的工具方法,但是對於這個話題,你確定自己已經完全瞭解了嗎? 本文詳細分析了js對象的合併與拷貝方法,並試圖從幾個維度對其進行分類

原创 webpack的優化方案

前言 在前端應用的優化中,對加載資源的大小控制極其的重要,大多數時候我們能做的是在打包編譯的過程對資源進行大小控制、拆分與複用。 本片文章中主要是基於 webpack 打包,以 React、vue 等生態開發的單頁面應用來舉例說明如何從

原创 說說JavaScript的原型鏈

在JS中,原型鏈有時候讓人覺得很胡裏花哨,又是prototype、__proto__又是各種指向什麼的,讓人覺得很頭疼。如果你也有這種感覺,或許這篇文章可以幫助到你 一、認識原型 1、先來一串代碼 var Person = functio

原创 前端最佳實踐——DOM操作

1、瀏覽器渲染原理 在講DOM操作的最佳性能實踐之前,先介紹下瀏覽器的基本渲染原理。瀏覽器渲染展示網頁的主流程大致可以用下圖表示: 圖:WebKit 主流程 分爲以下四個步驟: 解析HTML(HTML Parser) 構建DOM樹

原创 JavaScript的十個小技巧

每一門語言都有一些奇技淫巧,JS也不例外,一直想總結這麼篇文章,我包括一些新手,都會有這麼一個疑問,每次面對一張空白的頁面,不知從何下手,沒有思路,高手有的是設計模式,但是在這裏講一些設計模式,我可能不夠格,這些書籍都有可以自己去翻閱,我

原创 ES6 Promise:模式與反模式

當幾年前,第一次使用 NodeJS 的時候,對現在被稱爲“ 回調地獄 ”的寫法感到很困擾。幸運的是,現在是 2017 年了,NodeJS 已經採用大量 JavaScript 的最新特性,從 v4 開始已經支持 Promise。 儘管

原创 瀏覽器下載文件,非窗口打開方法

在調試瀏覽器文件下載時發現ie下載文件時,無論文件是什麼格式,都是新窗口打開而非下載,此方法可以解決上述ie11瀏覽器hack。

原创 聊聊cookie的那些事

前言 cookie在web開發中時常被用到,也是面試官喜歡問的一塊技術,很多人或許和我以前一樣,只知其一不知其二,談起web存儲,都會答localStorage、sessionStorage、還有就是cookie,然後一些區別啊什麼的倒背

原创 發佈前必須排查的Web安全

關於Web安全的問題,是一個老生常談的問題,作爲離用戶最近的一層,我們大前端確實需要把手伸的更遠一點。 我們最常見的Web安全攻擊有以下幾種 XSS 跨站腳本攻擊CSRF 跨站請求僞造clickjacking 點擊劫持/UI-覆蓋攻

原创 ES6系列文章 異步神器async-await

關於異步處理,ES5的回調使我們陷入地獄,ES6的Promise使我們脫離魔障,終於、ES7的async-await帶我們走向光明。今天就來學習一下 async-await。 async-await和Promise的關係 經常會看到有了

原创 ie11下下載文件,文件名亂碼的解決方法

環境:win10教育版+IE11 現象:下載PDF文件 谷歌下載,文件名:下載獎金計劃PDF文件(英文).pdf 用IE 下載,文件名:2016-17 CAMBRO 涓枃浜у搧鐩綍鍐_pdf  IE下載時中文部分出現亂碼,並

原创 前端跨域的解決方案

什麼是跨域? 跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源,這裏跨域是廣義的。 廣義的跨域: 1.) 資源跳轉: A鏈接、重定向、表單提交 2.) 資源嵌入: <link>、<script>、<img>、<frame>等d

原创 JS語法: 由++[[]][+[]]+[+[]] = 10 ?引發的問題

解釋:爲什麼 ++[[]][+[]]+[+[]] = 10 原文:爲什麼 ++[[]][+[]]+[+[]] = 10 [0]是一個帶有0成員的數組,[0][0]是取它的第1個成員,所以必是0。 用了[0][0] =

原创 safari下載文件後綴多添加了.exe的解決方法

通過程序讀取文件或生成文件來下載,一般只需設置 header 頭即可: header('Content-type: application/pdf'); header('Content-Disposition: attachment

原创 Promise 異步流程控制

最近部門在招前端,作爲部門唯一的前端,面試了不少應聘的同學,面試中有一個涉及 Promise 的一個問題是: 網頁中預加載20張圖片資源,分步加載,一次加載10張,兩次完成,怎麼控制圖片請求的併發,怎樣感知當前異步請求是否已完成? 然