Time of Update: 2017-01-19
工作中常常會建立一個函數來解決一些需求問題,以下是個人在工作中總結出來的建立函數20種方式,你知道多少?function sayHello(){ console.log('hello');}function leave(){ console.log('goodbye');}//testsayHello();為完成需求,趕緊聲明一個函數吧 var sayHello = function(){ console.log('hello');}var leave = function()
Time of Update: 2017-01-19
使用JavaScript寫的一個旋轉的彩圈效果圖<!DOCTYPE html><html><head><script src="/jquery-1.11.3.min.js"></script><script>for(var i=0;i<100000;i++){if(i%4==0)setTimeout("$('#div1').css({'border-left':'40px solid
Time of Update: 2017-01-19
類與繼承在javascript的出現,說明javascript已經達到大規模開發的門檻了,在之前是ECMAScript4,就試圖引入類,模組等東西,但由於過分引入太多的特性,搞得javascript烏煙瘴氣,導致被否決。不過只是把類延時到ES6.到目前為止,javascript還沒有正真意義上的類。不過我們可以類比類,曾近一段時間,類工廠是架構的標配,本章會介紹各種類實現,方便大家在自己的架構中或選擇時自己喜歡的那一類風格。1.javascript對類的支援在其它語言中
Time of Update: 2017-01-19
瀏覽器的嗅探現在已經不推薦了,但在某些場合還是需要的。比如一些統計指令碼。在標準瀏覽器裡,提供了document.implementation.hasfeature,可惜有bug,不準確,目前,w3c又推出了CSS.supports方法,顯示出大家對這塊的關注。1.判定瀏覽器。主流的瀏覽器有ie firefox opera chorme safari
Time of Update: 2017-01-19
種子模組也叫核心模組,是架構中最先執行的部分。即便像jQuery那樣的單檔案函數庫,它的內部也分很多模組,必然有一些模組執行時在最前面立即執行,有一些模組只有用到才執行。有的模組可有可無,存在感比較弱,只有在特定的瀏覽器下才運行。種子模組就是其中的先鋒,它裡邊的方法不一定要求個個功能齊全,設計優良,但一定要極具擴充性,常用,穩定。擴充性是指通過他們能給將其它模組包含進來;常用是指絕大多數的模組都能用到它們,防止做重複工作。穩定是指在版本迭代時不輕易被新方法替代。參照許多架構和庫的實現,我們認為種
Time of Update: 2017-01-19
從內部架構和理念劃分,目前JavaScript架構可以劃分為5類。第一種是以命名空間為導向的類庫或架構,如果建立一個數組用new Array(),產生一個對象用new
Time of Update: 2017-01-19
大家都知道,IE中的現代事件綁定(attachEvent)與W3C標準的(addEventListener)相比存在很多問題,例如:記憶體流失,重複添加事件並觸發的時候是倒敘執行等。下面是用傳統事件的方法來處理封裝事件的綁定:addEvent.ID = 1; // 事件計數器 function addEvent(obj, type, fn){ if(obj.addEventListener){ obj.addEventListener(type, fn, false);
Time of Update: 2017-01-19
通常JavaScript建立閉包比較常用的有兩種方式。建構函式方式:new function() { var 變數... } 內聯執行方式:(function() { var 變數... })();
Time of Update: 2017-01-19
我們先來看個執行個體function Me(name,age,job){ this.name = name; this.age = age; this.job = job;}請問這以下兩種執行個體化對象方式有什麼區別呢?var mefun1 = new Me('fei','20','it');var mefun2 =
Time of Update: 2017-01-19
修改很簡單,通過參數判斷,然後返回下promise對象複製代碼 代碼如下:(function() { var timeout = setTimeout; window.setTimeout = function(fn, time) { if (!time) { time = fn; return $.Deferred(
Time of Update: 2017-01-19
function prescript(s) { if (s.cache === undefined) { s.cache = false; } if (s.crossDomain) { s.type = "GET"; } } function prejsonp(s, originalSettings, jqXHR) { // 給回呼函數命名 var callbackName = s.jsonpCallback s.url += (
Time of Update: 2017-01-19
KMP演算法和BM演算法KMP是首碼匹配和BM尾碼匹配的經典演算法,看得出來首碼匹配和尾碼匹配的區別就僅僅在於比較的順序不同首碼匹配是指:模式串和母串的比較從左至右,模式串的移動也是從
Time of Update: 2017-01-19
樣本一:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>TT</title> <script src="jquery.js"></script></head><body><p style="line-height: 50%;"><span></span></p>&
Time of Update: 2017-01-19
串是由零個或多個字元組成的有限序列,又叫做字串串的邏輯結構和線性表很相似的,不同的是串針對是是字元集,所以在操作上與線性表還是有很大區別的。線性表更關注的是單個元素的操作CURD,串則是關注尋找子串的位置,替換等操作。當然不同的進階語言對串的基本操作都有不同的定義方法,但是總的來說操作的本質都是相似的。比如javascrript尋找就是indexOf,
Time of Update: 2017-01-19
我們可以看到在javascript概念中的隊列與棧都是一種特殊的線性表的結構,也是一種比較簡單的基於數組的順序儲存結構。由於javascript的解譯器針對數組都做了直接的最佳化,不會存在在很多程式設計語言中數組固定長度的問題(當數組填滿後再添加就比較困難了,包括添加刪除,都是需要把數組中所有的元素全部都變換位置的,javascript的的數組確實直接給最佳化好了,如push,pop,shift,unshift,split方法等等…)線性表的順序儲存結構,最大的缺點就是改變其中一個元素的排列時都
Time of Update: 2017-01-19
隊列是只允許在一端進行插入操作,另一個進行刪除操作的線性表,隊列是一種先進先出(First-In-First-Out,FIFO)的資料結構隊列在程式程式設計中用的非常的頻繁,因為javascript單線程,所以導致了任何一個時間段只能執行一個任務,而且還參雜了非同步機制,那麼帶來的問題:1. 在非同步作業執行的時候,同步代碼還在繼續,那麼同步代碼依賴非同步,自然就會出錯2. 多個同步的任務在不同的時間段被調用jQuery的動畫中,我們經常寫一段連續的動畫代碼$book.animate({
Time of Update: 2017-01-19
序資料結構與演算法JavaScript這本書算是講解得比較淺顯的,優點就是用javascript語言把常用的資料結構給描述了下,書中很多例子來源於常見的一些面試題目,算是與時俱進,業餘看了下就順便記錄下來吧git代碼下載:https://github.com/JsAaron/data_structure.git棧結構特殊的列表,棧內的元素只能通過列表的一端訪問,棧頂後入先出(LIFO,last-in-first-out)的資料結構javascript提供可操作的方法, 入棧 push, 出棧
Time of Update: 2017-01-19
簡單的滑鼠移動事件:進入複製代碼 代碼如下:mouseenter:不冒泡mouseover: 冒泡不論滑鼠指標穿過被選元素或其子項目,都會觸發 mouseover 事件只有在滑鼠指標穿過被選元素時,才會觸發 mouseenter 事件移出複製代碼 代碼如下:mouseleave: 不冒泡mouseout:冒泡不論滑鼠指標離開被選元素還是任何子項目,都會觸發 mouseout 事件只有在滑鼠指標離開被選元素時,才會觸發 mouseleave
Time of Update: 2017-01-19
本文執行個體講述了JavaScript每天定時更換皮膚樣式的方法。分享給大家供大家參考。具體分析如下:這段js代碼通過每天在不同時段自動更換網頁調用的樣式表,實現更換皮膚的功能。<script type="text/JavaScript"><!--function getStylesheet() { var currentTime = new Date().getHours(); if (0 <= currentTime&¤tTime < 5)
Time of Update: 2017-01-19
本文執行個體講述了JavaScript獲得指定對象大小的方法。分享給大家供大家參考。具體如下:function objectSize(the_object) { /* function to validate the existence of each key in the object to get the number of valid keys. */ var object_size = 0; for (key in the_object){ if