Time of Update: 2017-01-19
本文執行個體分析了Javascript閉包的概念及用法。分享給大家供大家參考。具體如下:提到閉包,想必大家都早有耳聞,下面說下我的簡單理解。說實話平時工作中實際手動寫閉包的情境並不多,但是項目中用到的第三方架構和組件或多或少用到了閉包。所以,瞭解閉包是非常必要的。呵呵...一、什麼是閉包簡而言之,就是能夠讀取其他函數內部變數的函數。由於JS變數範圍的特性,外部不能訪問內部變數,內部可以外部變數。二、使用情境1. 實現私人成員。2. 保護命名空間,避免汙染全域變數。3.
Time of Update: 2017-01-19
代碼很簡潔,功能很實用,這裡就不多廢話了,直接給大家奉上代碼:/** * Created by Administrator on 15-1-12. */function BroswerUtil() {}BroswerUtil = { //檢測瀏覽器版本 getBrowserVersion: function () { var agent = navigator.userAgent.toLowerCase(); var arr = []; var Browser = "";
Time of Update: 2017-01-19
代碼複用有一個著名的原則,是GoF提出的:優先使用對象組合,而不是類繼承。在javascript中,並沒有類的概念,所以代碼的複用,也並不局限於類式繼承。javascript中建立對象的方法很多,有建構函式,可以使用new建立對象,並且可以動態修改對象。javascript的非類式繼承(可稱為現代繼承模式)複用方法也很多,例如,利用其它對象組合成所需要的對象,對象混入技術,借用和複用所需要的方法。類式繼承模式-預設模式兩個建構函式Parent和Child的例子:複製代碼
Time of Update: 2017-01-19
最近使用Firefox進行網頁的調試,發現有些Javascript XSLT處理XML的語句僅僅支援IE瀏覽器。而網路中的一些介紹javascript XSLT 處理XML的文章基本上都是依據AJAX來做的。 無奈中,自己寫了一個Javascript XSLT處理XML展現頁面的小功能。現在帖出來和大家共用,希望大家給點改進意見。 在Firefox中使用XSLTProcessor對象處理XML,主要使用該對象的兩個方法:一、
Time of Update: 2017-01-19
使用js開發的IE外掛程式可以在當前瀏覽的頁面中執行js代碼,在此基礎上實現任何使用者可以想到的功能。可以針對不用的網站做一些common處理(比如提取某類資訊),也可以針對特定網站做特色處理(比如搶購火車票)。實現這種外掛程式方法比較簡單,只需拷貝幾個檔案,修改一個註冊表值即可。所以比較適合快速實現一些瀏覽器或者網站協助工具功能。實現步驟:1.建立實現具體功能的html檔案複製代碼 代碼如下://檔案名稱:getticketslist.html//檔案內容:<script
Time of Update: 2017-01-19
簡單點就是string是字元(串)...而array是數組...可以放數字啊,字元啊等一系列東東!!!上個樣本:複製代碼 代碼如下:var str = "liuzhanqi";document.write(str["length"]);//等價str.l ength var str = string.fromcharcode(72, 101, 108, 108, 111, 33);document.write(str); //各整數作為unicode編碼,並串連成字串。var
Time of Update: 2017-01-19
在JavaScript的實值型別轉換中,最常發生的就是string與number這兩種類型值之間的相互轉換。可以通過調用number值的4個函數(事實上,是JS將number值自動轉化為Number對象後,Number類的4個函數)來將其轉換成string:1.toString()。2.toFixed()。3.toExponential()。4.toPrecision()。toString()可以在number值上調用toString()方法來將其轉換成字串。toString()函數接受一個2到
Time of Update: 2017-01-19
JavaScript中,可以通過以下3種方法來將string值轉換成number:1.調用Number()來對string進行實值型別轉換。2.parseInt()。3.parseFloat()。Number()使用Number()函數來對string進行強制類型轉換是最直接的做法。不過,這種做法有一個局限性:如果字串截去開頭和結尾的空白字元後,不是純數字字串,那麼最終返回結果為NaN。David Flanagan的JavaScript – The Definitive Guide 6th
Time of Update: 2017-01-19
JavaScript中,==與===操作符均可用於判斷兩個值是否相等;不同之處在於,如果進行判斷的兩個實值型別不一致,===操作符會直接返回false,而==操作符則會在類型轉換後再進行判斷。詳細的判斷規則如下:===操作符的判斷規則1.如果兩個值的類型不一致,返回false。2.如果兩個值的類型一致,值一致,返回true。NaN是一個特例,NaN===NaN返回false。3.如果兩個值均為object類型,那麼與Java一樣,除非兩者引用一致(reference指向同一個對象地址),不然即使
Time of Update: 2017-01-19
一、擷取元素的行內樣式複製代碼 代碼如下:var obj = document.getElementById("test");alert(obj.height + "\n" + obj.width);// 200px 200px typeof=string只是將style屬性中的值顯示出來二、擷取計算後的樣式複製代碼 代碼如下:var obj = document.getElementById("test");var style = null;if
Time of Update: 2017-01-19
本文執行個體講述了同一個網頁中實現多個JavaScript特效的方法。分享給大家供大家參考。具體分析如下:一般來說,在網頁中,如果出現兩次<script type="text/javascript"></script>標籤,所有的JavaScipt指令碼都不會再生效,只能出現一次<script
Time of Update: 2017-01-19
本文執行個體分析了JavaScript事件委託技術。分享給大家供大家參考。具體分析如下:如果一個整體頁面裡有大量的按鈕.我們就要為每一個按鈕綁定事件處理常式.這樣就會影響效能了.首先每個函數都是對象,對象就會佔用很多記憶體.記憶體中的對象越多,效能就越差.其次,dom訪問次數增多,就會導致消極式載入頁面.事實上,從如何來利用好事件處理常式,還是有很好的解決方案的.事件委託:對事件處理常式過多的問題解決的方案就是事件委託技術.事件委託技術利用了事件冒泡.只需指定一個事件處理常式.我們可以為某個需要
Time of Update: 2017-01-19
本文不是參考手冊式文章,僅適用於對JS產生一個大致的認知,如需JS的詳細文法與應用請移步w3schoolJavaScript是什嗎?JavaScript的誕生在1995年前後,當時世界上的主流頻寬為28.8Kbps,現在世界平均下載頻寬為21.9Mbps(資料來源於http://www.netindex.com)。當時的網民,每提交一次表單,都需要等待很久才能收到伺服器的回應,甚至很可能等了幾分鐘收到的卻是說缺少了某一項。為了改善使用者體驗,嵌入瀏覽器用戶端的能實現簡單表單判斷的指令碼誕生了,這
Time of Update: 2017-01-19
本文執行個體講述了JavaScript實現SHA-1密碼編譯演算法的方法。分享給大家供大家參考。具體實現方法如下:調用方法:hex_sha1即可。複製代碼 代碼如下:/* * * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined * in FIPS PUB 180-1 * * By lizq * *
Time of Update: 2017-01-19
本文執行個體講述了javascript轉換日期文字為Date日期對象的方法。分享給大家供大家參考。具體如下:這裡實現把一個日期文字如“2014-4-28 12:31:45”轉換為Date對象:方法一:複製代碼 代碼如下:var strArray=str.split(" "); var strDate=strArray[0].split("-"); var strTime=strArray[1].split(":"); var a=new
Time of Update: 2017-01-19
本文執行個體講述了javascript擷取元素離文檔各邊距離的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:function getDistance(obj) { if (!obj instanceof jQuery) { obj = $(obj); } var distance = {}; distance.top =
Time of Update: 2017-01-19
與Java語言不同,JavaScript中的數組擁有三個特性: 1.無類型。數組的成員可以是任何類型,同一個數組也可以由很多不同類型的成員所組成。2.長度可變。數組的長度是可以動態變化的,因此在JavaScript中不存在數組訪問的越界問題。3.不連續性。數組中成員的位置可以是連續的(0, 1, 2,
Time of Update: 2017-01-19
什麼是模式前陣子準備期末考試,勞神又傷身的,實在閑不得空來更新文章,今天和大家說說javascript中的設計模式。首先呢,我們需要知道的是:模式是一種可複用的解決方案,而反模式呢就是針對某個問題的不良解決方案。js反模式常見例子1.向setTimeout和setInterval傳遞字串,而不是函數,這會觸發eval()的內部使用。2.在全域上下文中定義大量的變數汙染全域命名空間3.修改Object類的原型4.以內聯形式使用js,嵌入在HTML檔案中的js代碼是無法包含在外部單元測試工具中的。5
Time of Update: 2017-01-19
本文執行個體講述了Javascript毫秒數用法。分享給大家供大家參考。具體如下:毫秒數是指指定的日期和時間距 1970 年 1 月 1 日午夜(GMT 時間)之間的毫秒數。1、當前系統時間的毫秒數var myData = new Date(); var times = myData.getTime();//目前時間的毫秒數2、指定時間的毫秒數var time = "2014-02-27 11:50:21"; var times = Date.parse(new
Time of Update: 2017-01-19
0.前提JavaScript對象的屬性分為兩種存在形態. 一種是存在執行個體中, 另一是存在原型對象中.根據上述, 檢測屬性的時候會出現4種情況既不存在執行個體中, 也不存在原型對象中存在執行個體中, 不存在原型對象中不存在執行個體中, 存在原型對象中既存在執行個體中, 也存在原型對象中1.hasOwnPrototype()hasOwnPrototype()接受一個字串格式的屬性名稱, 如果執行個體本身存在該屬性(情況2/情況4), 返回true. 否則,