原创 js for in 和for區別詳解

在JavaScript中,對象的屬性分爲可枚舉和不可枚舉之分,它們是由屬性的enumerable值決定的,我們應該清楚什麼是枚舉屬性,什麼是不可枚舉屬性? 1.怎麼判斷屬性是否可枚舉 一.propertyIsEnumerable方

原创 一個input標籤解決文件單選多選的問題

好久沒寫博客,最近項目優化,看見文件上傳組件,發現之前用的是兩個input標籤,一個是多選,一個是單選,用過配置來控制顯示或者隱藏 <div ng-click='!ctrl.fileUploader.isUploading &&

原创 前端關於retry組件的方法和實現

前端接口請求數據是再熟悉不過了,但是有些時候網絡問題,或者其他問題導致的失敗請求還是很常見的!有些是真的失敗需要retry,有些是成功,成功之後再告訴你需要retry, 接下來我來分享下我做項目裏面自己手寫了一個 retry組件,

原创 AngularJs 生命週期$onChanges鉤子函數總結

1.概念 1.可變對象(在js中,對象是可變的) var person ={ name:'張三',//在對象中創建了一個值爲張三的name對象 age:'18' } person.name ='李四' //給name賦值一個新

原创 angularjs和js中同一個元素上如何實現ng-click(onclick),ng-dblclick(ondblclick)事件

單擊,雙擊事件相信大家應該很瞭解了,他們可以分別執行自己的事件,但是如果用一個元素的既有單擊事件,又有雙擊事件,這種情況下,該如果實現各自的事件呢?看下面代碼: html代碼: <button onclick="single(e

原创 前端關於pdf文件流下載分析和總結

前幾天做builder項目有個pdf下載需求,然後把在做這個的問題和方法記錄下來(僅供參考)。 1.概念 有些同學很有可能會疑問,pdf下載和預覽功能,什麼時候是下載?什麼時候是預覽? 其實這個和幾方面的因素有關係,假如一個a標籤

原创 js 編碼解碼 encodeURI,encodeURIComponent,decodeURI,decodeURIComponent,escape,unescape區別

1.概念理解 1.encodeURI,encodeURIComponent是對字符進行編碼(它們是一對)。 2.decodeURI,decodeURIComponent是對編碼過的字符進行解碼(它們是一對)。 3.encodeUR

原创 angular中scope,controller,this繼承區別

1.scope的幾種繼承 說到scope,我們可能會想到rootScope,因爲所有的scope都是由rootScope產生出來的,我們也知道在angular裏面 scope有幾種繼承形式: 1.scope爲false,完成繼承父

原创 javascript執行機制

對於javascript執行機制,大家應該並不陌生,很多面試題都會出現,比如: setTimeout(function () { console.log('定時器') }); new Promi

原创 瀏覽器嗅探和兼容淺談

最新做項目要搞個瀏覽器兼容方案,之前做的兼容不是很好,所以要重新改寫,爲什麼會有那麼多不兼容原因(渲染-HTML相關,渲染-CSS相關,渲染-混合類型,腳本,服務端通信,瀏覽器特性),所以做兼容主要從下面幾個方向去分析問題(包括測

原创 五大主流瀏覽器四大內核(瀏覽器兼容)

之前做項目的瀏覽器兼容,之前的瀏覽器嗅探全是一個一個方法判斷,寫的太亂太複雜了,後面用到了Browser.js,因爲這個插件能測試到瀏覽器的內核,所以不管什麼瀏覽器都可以測試出來。瀏覽器內核是指瀏覽器最重要的核心部分,也稱“渲染引

原创 javascript中bind多次綁定和apply,call,bind同時使用的深入理解

之前在看angualr的源碼,看到一個很奇怪的寫法,當時只是大概懂意思,也沒深入研究,最近有時間深入研究了下,然後把自己的分析和理解記錄下來。 1.當bind,call或者apply同時使用 先看一段angualr的源碼: fu

原创 深入理解css行高line-height

1.行高的定義 行高是相鄰兩行文本基線之間的垂直距離。看清除是基線,估計有很多前端搞了幾年的都說不出個所以然。小時候我們寫英文26個英文字母的單詞本(隨便找個圖) 一行裏面有四條線,在css中一個行內非替換元素(例如span,e

原创 深入理解apply,call,bind及源碼實現

對於前面2個 apply,call大家應該非常熟悉了,都可以改變this指向,都可以傳參數,但是bind的話很多人可能覺得和它們沒有什麼區別,估計用bind也用的少,下面我來一一分析下各自的實現原理: 1.call方法 1.第一個

原创 AngularJs scope事件機制$emit , $broadcast,$on廣播事件(源碼分析)

在angular scope中可以通過$on,$emit和$broadcast方法實現了自定義事件機制,實現數據共享,原理其實並不複雜,下面我會用例子來做分析,先看一段測試源碼: <div ng-controller="p