Time of Update: 2017-01-19
洗牌演算法是我們常見的隨機問題,在玩遊戲、隨機排序時經常會碰到。它可以抽象成這樣:得到一個M以內的所有自然數的隨機順序數組。在百度搜“洗牌演算法”,第一個結果是《百度文庫-洗牌演算法》,掃了一下裡面的內容,很多內容都容易誤導別人走上歧途,包括最後用鏈表代替數組,也只是一個有限的最佳化(鏈表也引入了讀取效率的損失)。該文裡的第一種方法,可以簡單描述成:隨機抽牌,放在另一組;再次抽取,抽到空牌則重複抽。“抽到空牌則重複抽”這會導致後面抽到空牌的機會越來越大,顯然是不合理的。可以最佳化一步成:牌抽走後
Time of Update: 2017-01-19
這裡面做了一個JavaScript的求愛小特效,效果如下: 不僅能出現下面的圖的效果,還可以讓這個圖形跟隨著滑鼠轉動哦,這裡面只是一個簡單的沒有修飾的小例子,基於這個例子可以讓求愛,更加好玩了。悶騷男們,是不是可以給你的小蘿莉發個這樣的網頁啊。給力的。 貼上code吧: 複製代碼 代碼如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title
Time of Update: 2017-01-19
大家在使用Javascript的時候經常被this這個傢伙搞得暈頭轉向的。對大多數有OOP開發經驗的開發人員來說this是當前範圍中引用普通元素的標識符,但是在Javascript中它卻顯得古靈精怪的,因為它不是固定不變的,而是隨著它的執行環境的改變而改變。在Javascript中this總是指向調用它所在方法的對象。舉一個簡單的例子:複製代碼 代碼如下:function test(){alert(this);}var obj=function(){var
Time of Update: 2017-01-19
本文執行個體匯總了常用的JavaScript快顯視窗方法,供大家對比參考,希望能對大家有所協助。詳細方法如下:1.無提示重新整理網頁:大家有沒有發現,有些網頁,重新整理的時候,會彈出一個提示視窗,點“確定”才會重新整理。而有的頁面不會提示,不彈出提示視窗,直接就重新整理了.如果頁面沒有form,則不會彈出提示視窗如果頁面有form表單,a)<form method="post" ...> 會彈出提示視窗b)<form
Time of Update: 2017-01-19
幀用來存放子頁面,既可以是iframe,又可以是frameset。window對象是全域對象,頁面上的一切函數和對象都在它的範圍裡。 1、parent代表父視窗、如果父視窗又存在若干層嵌套,則top代表頂級父視窗。 self代表視窗自身。if(self==top){//}判斷視窗是否處於頂級 if(self==parent){}//也可以2.1、父頁面訪問子頁面元素。思路是子頁面的元素都在其window.document對象裡面,先擷取它然後就好說了。
Time of Update: 2017-01-19
首先,我們來看非主流繼承一:執行個體繼承法。我也不說那麼多廢話了,既然是非主流繼承,就一定不常用,既然不常用還存在,那就只有一個因素,他用於特定的場合。執行個體繼承法,就主要用於核心對象的繼承,也是目前為止唯一能夠解決核心對象繼承的方式。核心對象的繼承擁有一定的價值,比如說Error對象,我們公司可能要自己實現一個Error 類來簡化今後的開發,那麼這個時候我就要使用執行個體繼承法來繼承Error。代碼如下:複製代碼 代碼如下:function
Time of Update: 2017-01-19
將javascript代碼添加到用戶端的方法是把它放置在偽協議說明符javascript:後的URL中。這個特殊的協議型別宣告了URL的主體是任意的javascript代碼,它由javascript的解譯器運行。如果javascript:URL中的javascript代碼含有多個語句,必須使用分號將這些語句分隔開。這樣的URL如下所示:javascript:var now = new Date(); "<h1>The time is:</h1>" +
Time of Update: 2017-01-19
在網上找個很多的樹實現,總感覺不盡如意,不是需要引用JS外部檔案使用外掛程式,就是代碼過多讓人看的眼花,實際上我只是想實現一個代碼簡潔、邏輯不複雜的樹,費話不多說直接上代碼: 1,首先寫CSS樣式,這個必需要寫的頭部最先渲染 複製代碼 代碼如下: <style> .ps{margin-left:10px;display:none;} .f { background: url("add.gif") no-repeat scroll -4px -21px; cursor:
Time of Update: 2017-01-19
問題:請編寫一個JavaScript函數parseQueryString,它的用途是把URL參數解析為一個對象。eg:var obj=parseQueryString(url);建立對象的三種形式:一:var Person=new Object();Person.name="Sun";Person.age=24;二:var Person=new Object();Person["name"]="Sun";Person["age"]=24;三:對象字面量運算式var Person={name: "
Time of Update: 2017-01-19
我記得在剛開始接觸動態HTML及JavaScript時就接觸過關於滑鼠右鍵屏蔽的指令碼代碼,當時這些代碼很多會用在防止瀏覽者未經允許的複製網頁上的文字或者其他內容,後來的實際應用證明這種做法是不符合使用者體驗的,而且破解的方法也有很多,比如我曾經寫過一篇文章講解如何解除網頁禁止複製的辦法。由此可見,限制右鍵及複製是不明智的做法,但是今天我仍然要談談關于禁止網頁複製、右鍵菜單的事兒,因為隨著網頁APP技術的發展,網頁應用和案頭應用之間的界限越來越模糊,有一些傳統型程式實際上是由網頁配合JavaSc
Time of Update: 2017-01-19
做為一個前端開發人員在網頁展示中經常會碰到,標題過長,需要截取字串,用CSS的實現的話各種相容問題,各種坑。 讓背景程式截一下,又各種推託,讓後台按位元組截一下更是和要了後台老命一樣,最後可能只會安字元長度給你截一下,最後不好看,對不齊,還是回頭整CSS、調相容; 有以上有感觸的前端同學默默點個贊吧。 最近接觸一個項目,後台只提供介面(json),所有頁面的資料渲染,資料繫結都都交給了前端。終於,不考慮SEO,頁面所有的主動權到偶的手中了,不經意間就碰到位元組截取老問題了。
Time of Update: 2017-01-19
今天研究了點Flex技術,做了一個小的Demo,在測試時發現經常報錯,網上一查發現是瀏覽器Flash Player版本較低造成(需要10及其以上的版本)的,對此總結了一下藉助JavaScript指令碼判斷瀏覽器Flash Player資訊的方法:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>
Time of Update: 2017-01-19
一些不太常用但強大的JavaScript小技巧,新手和老手js開發人員都不一定知道。1、截斷數組與數組長度複製代碼 代碼如下:var arr1 = arr2 = [1, 2, 3];//改變 arr1arr1 = []; // arr2則任然是 [1,2,3]你會發現arr1用[]方法來清空不會影響arr2的值,假如要想讓arr1改變後arr2跟著一起改變 ,則可以這樣複製代碼 代碼如下: var arr1 = arr2 = [1, 2, 3];arr1.length=0;
Time of Update: 2017-01-19
對於一些小數點後有多位的浮點數,我們可能只需要保留2位,但js沒有提供這樣直接的函數,所以我們得自己寫函數實現這個功能,代碼如下:複製代碼 代碼如下:function changeTwoDecimal(x) { var f_x = parseFloat(x); if (isNaN(f_x)) {
Time of Update: 2017-01-19
功能描述:開啟一個網站的網頁,過5分鐘不動作,就會鎖定頁面,隱藏內容容器,顯示一個容器用於輸入密碼,輸入正確的密碼來解鎖。鎖定後即使使用者重新整理頁面,還是保留原來的狀態。如已經鎖定的,需要繼續鎖定,否則顯示內容。 範例程式碼如下,通過document.onmouseover來實現多少分鐘沒有動作,使用計時器來實現。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
Time of Update: 2017-01-19
Getter是一種擷取一個屬性的值的方法,Setter是一種設定一個屬性的值的方法。可以為任何預定義的核心對象或使用者自訂對象定義getter和setter方法,從而為現有的對象添加新的屬性。有兩種方法來定義Getter或Setter方法:1.在對象初始化時定義2.在對象定義後通過Object的__defineGetter__、__defineSetter__方法來追加定義在使用對象初始化過程來定義Getter和Setter方法時唯一要做的事情就是在getter方法前面加上“get”,在sett
Time of Update: 2017-01-19
實現代碼:複製代碼 代碼如下:<script>function addFav(){ if(document.all){ window.external.addFavorite('http://jb51.net','FREE Web Directory'); }else if(window.sidebar){
Time of Update: 2017-01-19
昨晚德國和葡萄牙的焦點之戰你看了嗎?北京時間淩晨的比賽中,C羅領銜的葡萄牙0-4德國被完滅……他是金球獎得主、歐洲金靴、歐冠冠軍核心,在葡萄牙隊……9張圖 C羅告訴你什麼叫欲哭無淚 複製代碼 代碼如下: <span style="font-size:14px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
Time of Update: 2017-01-19
複製代碼 代碼如下: var json = { jArray: [], jPush: function (c) { this.jArray.push(c); } } var examp = ["123", "~", "456"]; 使用ES5給出的forEach迴圈examp,並且將它們添加到json中的jArray中; 複製代碼 代碼如下: examp.forEach(json.jPush); 這個時候會報錯:
Time of Update: 2017-01-19
複製代碼 代碼如下: <span style="font-size:14px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta